如何让应用脚本API视频“工作”

时间:2012-09-13 21:04:37

标签: google-apps-script

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

是否有一个工作示例而不仅仅是上述代码段?换句话说,你如何处理响应var以“显示”到YouTube等的查询?据说这个URL-fetch示例需要理解大量的教程示例,但实际上并没有实现任何目的。

谢谢

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

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

我尝试过Logger.log(响应);这给了我“未知的宏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或logger有什么不同呢?这些都让我'未知的宏doGet“

请我在这里迷路。我需要在继续其他教程之前对此进行处理,但我遗漏了一些内容。

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

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

//这是2个菜单项       var menuEntries = [{name:“Surprise 1”,functionName:“menuItem1”},                           {name:“Surprise 2”,functionName:“menuItem2”},                           {name:“Surprise 3”,functionName:“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”。所以?

如何将其插入浏览器?我必须对“部署到网络”选择有问题,对吗?

2 个答案:

答案 0 :(得分: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应用程序”。剪切并粘贴链接和最新版本,它们都给我“Unknown Macro doGet”

答案 1 :(得分:0)

请在发布之前阅读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