【问题标题】:How do you get the apps script API video to "Work"你如何让应用程序脚本 API 视频“工作”
【发布时间】:2012-09-13 21:04:36
【问题描述】:

这里是应用脚本外部 API 的“示例”。

https://developers.google.com/apps-script/external_apis

但是当你剪切和粘贴代码时:

var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
var response = UrlFetchApp.fetch(url);

进入 Code.gs

function myFunction() {

 var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
var response = UrlFetchApp.fetch(url);

}

然后按“发布部署为 Web 应用程序”(在管理项目后)没有任何反应。

除了上面的 sn-p 之外,还有一个可行的例子吗?换句话说,您如何处理将查询“显示”到 YouTube 等的响应变量?据说这个 URL-fetch 示例是理解大量教程示例所必需的,但它本身并不能真正完成任何事情。

谢谢

我在这里回应对以下答案的回应。

我试过 Browser.msgBox(response);这给了我“未知的宏 doGet”。

我试过 Logger.log(response);这给了我“未知的宏 doGet”。

function myFunction() {
    var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
var response = UrlFetchApp.fetch(url);

//Browser.msgBox(response);

// Logger.log(response);

}

你说“这取决于你作为开发人员”但我不知道“作为开发人员”应该做什么

是的,很明显我在这里遗漏了一些东西,这就是问题所在。我遗漏了一些基本的东西,假设我应该从示例中知道但我不知道。

教程中没有向我介绍 Listbox。

当我在 /apps-script 的搜索中输入“listbox”时,我得到了这个例子:

https://developers.google.com/apps-script/class_listbox

我把它放到一个电子表格中,并且能够运行它来获得选择选项。那么为什么这与我应该使用 msgbox 或记录器得到的不同呢?这些都让我得到“未知宏 doGet”

请我在这里迷路了。在继续学习其他教程之前,我需要了解这一点,但我遗漏了一些东西。

好的,我找到了一种方法来显示“响应”,但不使用“部署为 Web 应用程序”(这是我认为我需要的,但我想我不知道。

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();

// 这是 2 个菜单项 var menuEntries = [ {name: "Surprise 1", functionName: "menuItem1"}, {名称:“惊喜 2”,函数名称:“menuItem2”}, {名称:“惊喜 3”,函数名称:“menuItem3”} ];

//surprise3 在另一个脚本中

// 定义了菜单项之后,然后定义菜单本身 ss.addMenu("惊喜", menuEntries); }

function menuItem1() {
   var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
  var response = UrlFetchApp.fetch(url);
  Browser.msgBox(response);
}

function menuItem2() {
  var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
  Browser.msgBox(url);
}

但这只是在 menu1 的框中打印“FetchReponse”。那么?

如何将其输入浏览器?我的“部署到网络”选择一定有问题,对吗?

【问题讨论】:

  • 您应该阅读developers.google.com/apps-script/articles 上提供的更基础和基础的教程,以便了解 GAS 的工作原理。
  • 我已经完成了教程。这应该做什么?它打印吗?展示?发出声音?显示链接?验证链接是否存在?如果我知道它应该做什么,我也许能够引发响应。
  • 您可以使用 Apps 脚本编写几种类型的应用程序: 1. Web 应用程序 - 这些需要 doGet。您返回一些 HTML 或 UiApp 实例,然后将其呈现给浏览器。 2. 在电子表格中运行的应用程序 - 您可以使用 msgBox 之类的东西来弹出对话框。您需要在电子表格的上下文中运行这些(名称“浏览器”具有误导性)。您可以使用“播放”按钮运行它们,也可以作为对电子表格中某些事件的响应。

标签: google-apps-script


【解决方案1】:

脚本确实完成了它的预期任务。

Google 应用程序脚本 UI 具有调试器功能。尝试使用它来逐步完成示例 sn-p。定义变量后,查看它的值。这将帮助您了解正在发生的事情。 确实,示例本身(原样)不会对响应数据做任何事情,但这取决于作为开发人员的您。使用变量“响应”中的值,您可以填充列表框。但是没有提供执行此操作的代码,这取决于您;-) 如果您还不能编写该代码,我同意 Srik 的建议并查看教程。

最后,此链接可以帮助您解决有关示例中使用的 API 的更多问题。 https://developers.google.com/youtube/2.0/developers_guide_protocol#Standard_parameters

希望这会有所帮助。

【讨论】:

  • 我试过 Browser.msgBox(response);这给了我“未知的宏doGet”。我尝试了 Logger.log(response); 这给了我“未知的宏 doGet”。
  • 我非常同意塔拉斯的观点。你真的需要阅读基础教程。
【解决方案2】:

剪切并粘贴到一个函数中,仍然得到 Unknown Macro doGet。

function myFunction() {
     var url = "https://gdata.youtube.com/feeds/api/videos?"
    + "q=skateboarding+dog"
    + "&start-index=21"
    + "&max-results=10"
    + "&v=2";
  var response = UrlFetchApp.fetch(url);
  Browser.msgBox(response);
}

将其保存为托管版本。然后“部署为 Web 应用程序”。剪切并粘贴链接和最新版本,它们都给了我“Unknown Macro doGet”

【讨论】:

    【解决方案3】:

    在进一步发布之前请阅读https://developers.google.com/apps-script/execution_web_apps

    特别是句子:“为了将脚本部署为 Web 应用程序,它必须包含 doGet(e) 函数。”

    然后决定如何构建您的用户界面:https://developers.google.com/apps-script/html_servicehttps://developers.google.com/apps-script/uiapp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-16
      • 2016-01-13
      • 2018-08-18
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 2018-07-30
      相关资源
      最近更新 更多