2016-08-03 88 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

我希望它有幫助。

相關問題