UrlFetchApp Google脚本 - Nest恒温器的速率限制错误 - 响应代码429

时间:2015-02-10 14:53:00

标签: json google-apps-script urlfetch http-response-codes

我使用我在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行,文件“代码”)

我怀疑我不是唯一使用该脚本的人,触发器使用的Google源IP已超出Nest API的限制。

你能帮我解决一下吗?我考虑过使用代理服务器,但UrlFetchApp.fetch函数似乎不接受它。

谢谢,

PF

1 个答案:

答案 0 :(得分:1)

我只是遇到了太多的请求"我在测试同一个脚本时在开发期间出错。我能够让这个功能每小时运行没问题,甚至每5分钟一次。

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

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

版本