如何设置我的应用程序以接收来自其他脚本的请求?

时间:2016-12-14 21:23:41

标签: google-apps-script

我已尝试通过Postman发送请求来测试应用,但我得到了一个登录网页作为回复。我在部署应用程序时启用了“由任何人访问,甚至是匿名访问”,因此我不希望用户需要登录才能触发webhook。

我希望能够通过发送带有来自raspberry pi python脚本的一些数据的POST请求来运行我的脚本。

以下是我正在使用的代码:

function doGet(e) {
  Logger.log('I got a GET request');

  spreadsheet.appendRow(['test1', 'test2', '', 'test4']);

  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}


function doPost(e) {
  Logger.log('Got a POST.');
  return HtmlService.createHtmlOutput('Success');
}

2 个答案:

答案 0 :(得分:1)

谢谢@Sandy Good。

我发现我一直使用错误的URL,以/ dev结尾。我从来没有意识到有两个URL,从/ dev切换到/ exec URL后,它现在可以正常工作。

答案 1 :(得分:0)

每当您对代码进行更改时,都必须不断发布新版本。即使是最轻微的改变,您也必须发布一个新版本,并确保您使用的版本为&#34; exec&#34;最后。

你有:

return HtmlService.createHtmlOutput('<b>Hello, world!</b>');

技术上不创建内容。它创建类似HtmlService对象的东西。我不确定具体的官方用语是什么,但无论如何,你需要&#34;链&#34; .getContent()到最后:

h = HtmlService.createHtmlOutput('<b>Hello, world!</b>').getContent();

返回一个字符串。你或许可以归还。如果没有,请尝试使用内容服务。

也可以尝试:

var c,h;
h = HtmlService.createHtmlOutput('<b>Hello, world!</b>').getContent();

c = ContentService.createTextOutput(h);
return c;