2016-08-03 86 views
0

我一直在尝试启动Google Apps脚本,并在每次完成表单时将电子表格条目移动到Trello板上。我正在测试OAuth1流程,但无论我如何进行身份验证,我都不能POST任何内容(GET请求在除cards之外的所有内容中都运行良好)。我已确认这些应用程序在我的帐户设置中具有必要的读/写权限。即使通过身份验证,也无法POST到Trello API

出于测试目的,我通过以下网址使用Trello单次使用的令牌选项:

https://trello.com/1/authorize?name=SingleUseTesting&expiration=never&scope=read,write&key=MYKEY

中授权表明,应用有权限读取和写入到我的帐户。

授权显示在我的帐户仪表板启用读/写。

我可以从我的卡响应:

https://api.trello.com/1/lists/LIST_ID/cards

当我使用通过API URL尝试POST如下:

https://api.trello.com/1/lists/57a0b90f8b1740162702fa22/cards?&name=testing&due=null&key=MYKEY&token=MYTOKEN

我得到一个错误说该令牌无效。我甚至竟然撤销了对所有其他应用程序的访问权限,以查看它是否出于某种原因检查了错误的标记,但结果没有变化。

我需要确保POST URI能够成功发送Google Apps脚本中的​​对象,但我无法超越此步骤。任何关于我要去哪里的错误?

回答

0

该解决方案不在Trello文档中(我可以找到),所以我在此发布以防其他人遇到相同问题。

由于Google放弃了OAuth1库对象和方法,因此通过URL请求Trello API密钥的永久令牌要容易得多。但是,为了实现这个目标,您必须在网址中将request_type设置为token

授权请求应该是这样的:

https://trello.com/1/authorize?key=YOUR_APP_KEY&name=APP_NAME&scope=read,write&expiration=never&response_type=token

返回页面已经被包含在​​验证的API密钥写入请求的字符串。

完整的工作代码示例可在this GitHub Gist中找到。

0

有点晚了,但这是我发现的。

如果您有您的应用程序使用GET请求的工作,你应该有一个看起来像这样一个获取网址:

var url="https://api.trello.com/1/boards/MY_BOARD_ID/lists"; 

除非你指定,GET请求是在Trello API的默认方法。 对于其他三种类型(PUT,POST和DELETE),您需要传递请求方法作为参数。

下面是它是如何编码在我的脚本:

var url="https://api.trello.com/1/cards/MY_CARD_ID/pos?value=top"; 
var options={"method":"put"}; 
var response=service.fetch(url,options); 

正如你可以在此代码片段看,实际的请求参数是通过URL和可变的选项里面的方法传递。我的猜测是你也可以通过options变量中的payload对象发送它,但我现在懒得去测试它。 在Trello API文档中描述了用于每个请求的方法: https://developers.trello.com/advanced-reference

我希望它有帮助。

相关问题