1

这是一个简单的问题,但答案似乎难以捉摸。

我正在尝试通过以下方式将参数传递给脚本: https ://script.google.com/macros/s/AKfycbzygHQ2qQ.../exec?id=1234&value=Hello

脚本很简单:

function doGet(e) {
  Logger.log('in doGet function');
  for (var i in e.parameter) {
    Logger.log('parameter ' + i+1 + ' is ' + e.parameter[i]);
  } 
}

并在执行记录中获得以下内容:

[13-10-01 10:21:20:722 ICT] Starting execution
[13-10-01 10:21:20:734 ICT] Logger.log([parameter is undefined, []]) [0 seconds]
[13-10-01 10:21:20:735 ICT] Execution succeeded [0.0 seconds total runtime]

我在这里做错了什么?

谢谢!

4

4 回答 4

2

只需使用 e.parameter:

function doGet(e) {
  var app = UiApp.createApplication();

  var label = app.createLabel('Parameter value a:'+e.parameter.a+' Parameter value b:'+e.parameter.b);
  app.add(label);

  return app;
}

发布它,

获取 URL,您应该获得如下内容:

https://script.google.com/macros/s/AKfycbzvmy136r2B1RcIYd7QUmv9-1BBqD9WIwpt3NX9b3Wc3yZJazOj/exec

在 URL 中添加“?a=Something&b=somethingElse”:

https://script.google.com/macros/s/AKfycbzvmy136r2B1RcIYd7QUmv9-1BBqD9WIwpt3NX9b3Wc3yZJazOj/exec?a=Something&b=somethingElse 

并重新加载页面,您应该会看到:

Parameter value a:Something -- Parameter value b:somethingElse

在浏览器页面上。

于 2013-12-06T15:33:42.823 回答
2

使用以下修改后的代码来获得您在 e 中可以期待的内容。您可以通过使用带有 URL 参数的服务 URL 运行此代码来检查,例如val=123

function doGet(e) {
  Logger.log('in doGet function');

  Logger.log(JSON.stringify(e));

}

从服务 URL 运行它后,我得到了

[13-10-01 12:28:22:408 IST] in doGet function
[13-10-01 12:28:22:409 IST] {"queryString":"val=123","parameter":{"val":"123"},"contextPath":"","parameters":{"val":["123"]},"contentLength":-1}

现在您可以使用您的 JavaScript 技能从这个 JSON 中获取所需的内容。

于 2013-10-01T07:01:51.097 回答
1

Wager Ahmad 让我在这里走上了正确的道路,我遇到了同样的问题并尝试了 2 天。我在 JavaScript 和 Google Apps Script 方面缺乏的一些知识汇集到了一起。

试试这个,应该可以工作,最终如此“简单”:)

   function doGet(e) 
   {
   var c =  arguments[0].queryString
   Logger.log(c);
   }

非常感谢瓦卡尔!:)

斋堂

于 2013-10-25T18:53:32.620 回答
0

不知道发生了什么,但它会出现,但在“部署应用程序”窗口中的 URL 中提供的密钥与单击“测试最新代码的 Web 应用程序”后的密钥不同(除了 dev 与 exec)。一旦我复制了浏览器中显示的链接,而不是部署应用程序窗口中提供的链接,它就可以工作了。但是,我仍然不确定我的步骤是否有问题或谷歌是否有问题。任何人都可以对此有所了解吗?我认为它应该是相同的!

于 2013-11-13T12:29:00.167 回答