1

所以这里是应用脚本外部 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 应用程序”(管理项目后)没有任何反应。

是否有一个工作示例不仅仅是上面的代码片段?换句话说,您如何处理将查询“显示”到 YouTube 等的响应变量?据说这个 URL-fetch 示例是理解大量教程示例所必需的,但它本身并没有真正完成任何事情。

谢谢

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

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

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

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);

}

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

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

教程中没有向我介绍 Listbox。

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

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

我将其放入电子表格并能够运行它以获取选择选项。那么为什么这与我应该使用 msgbox 或记录器得到的不同呢?这些都让我得到“未知宏 doGet”</p>

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

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

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

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

//surprise3 在另一个脚本中

// 定义菜单项后,然后定义菜单本身 ss.addMenu("Surprises", 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”。所以?

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

4

3 回答 3

1

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

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

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

希望这可以帮助。

于 2012-09-14T21:16:32.847 回答
0

剪切并粘贴到一个函数中,仍然得到 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 应用程序”。剪切并粘贴链接和最新版本,它们都给我“未知宏 doGet”

于 2012-09-18T16:56:00.177 回答
0

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

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

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

于 2012-09-18T17:34:42.517 回答