2

我使用我在 Github 上找到的一个非常酷的 Google 脚本(来源:https ://gist.github.com/beezly/9b2de3749d687fdbff3f )来获取我的 Nest 恒温器上的温度并将其记录到 Google 电子表格中。

当我手动运行脚本时它工作得很好,但当我使用时间触发器自动运行它时就不行了。

在此行上将凭据发布到 API 时:

第 12 行:var response = JSON.parse(UrlFetchApp.fetch('https://home.nest.com/user/login', options).getContentText());

引发的异常是:

https://home.nest.com/user/login的请求失败,返回代码 429。截断的服务器响应:请求过多(使用 muteHttpExceptions 选项检查完整响应)(第 12 行,文件“代码”)

我怀疑我不是唯一一个使用脚本的人,并且触发器使用的谷歌源IP已经超过了Nest API的限制。

你有什么解决办法给我吗?我考虑过使用代理服务器,但该UrlFetchApp.fetch功能似乎不接受它。

谢谢,

PF

4

1 回答 1

1

当我测试同一个脚本时,我只在开发过程中遇到了“请求过多”错误。我能够让这个功能每小时运行一次也没问题,甚至每 5 分钟运行一次。

要让这个脚本在触发器上按预期运行,只需将 getData() 切换到 doGet(),将其发布为具有匿名访问权限的 Web 应用程序,然后创建另一个函数(我称之为 getData()),向您发布的请求web 应用程序 url(调用 doGet()),然后只需创建基于时间的触发器来运行新的 getData()。

这是我的版本https://gist.github.com/jbutters/bece2fffe85080fe4314

于 2015-04-06T20:25:07.793 回答