[英]Google apps script oauth connect doesn't work with trello
我一直在嘗試在Google應用程序腳本中使用oAuth來訪問trello數據,但似乎OAuthService API對oAuth服務做了一些假設,並且trello不能以這種方式工作。
以下代碼有效。 它可以訪問twitter(這是來自google的oauth教程):
function authorizeToTwitter() {
var oauthConfig = UrlFetchApp.addOAuthService("twitter");
oauthConfig.setAccessTokenUrl("https://api.twitter.com/oauth/access_token");
oauthConfig.setRequestTokenUrl("https://api.twitter.com/oauth/request_token");
oauthConfig.setAuthorizationUrl("https://api.twitter.com/oauth/authorize");
oauthConfig.setConsumerKey(<CONSUMER KEY>);
oauthConfig.setConsumerSecret(<CONSUMER SECRET>);
var requestData = {
"method": "GET",
"oAuthServiceName": "twitter",
"oAuthUseToken": "always"
};
var result = UrlFetchApp.fetch("https://api.twitter.com/1/statuses/mentions.json", requestData);
}
以下代碼將讓我訪問trello“按下確定后退”頁面,但trello不知道如何重定向,所以我到了一個頁面,要求我手動復制粘貼一個令牌(但谷歌沒有為我提供了插入該令牌的方法
function authorizeToTrello() {
var oauthConfig = UrlFetchApp.addOAuthService("trello");
oauthConfig.setAccessTokenUrl("https://trello.com/1/OAuthGetAccessToken");
oauthConfig.setRequestTokenUrl("https://trello.com/1/OAuthGetRequestToken");
oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken");
oauthConfig.setConsumerKey(<CONSUMER KEY>);
oauthConfig.setConsumerSecret(<CONSUMER SECRET>);
var requestData = {
"method": "GET",
"oAuthServiceName": "trello",
"oAuthUseToken": "always"
};
var result = UrlFetchApp.fetch(
"https://api.trello.com/1/members/me/boards",
requestData);
}
我嘗試通過手動添加我在授權URL中提供給twitter的重定向回調來解決這個問題
oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken?return_url=https://docs.google.com/macros"); //this is what the tutorial says I should provide to twitter
要么
oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken?return_url=https://docs.google.com/macros/externaloauthcallback"); //this is what twitter actually calls when performing the oauth dance
但兩者都不起作用。 難道我做錯了什么? 我錯過了一些我應該提供的配置參數嗎?
此行為是由Trello API中的錯誤引起的; Google正在嘗試在獲取授權令牌時提供oauth_callback
,但是當您批准令牌請求時,Trello並未重定向。
此錯誤已經解決,我已經驗證以下代碼有效:
function authorizeToTrello() {
var oauthConfig = UrlFetchApp.addOAuthService("trello");
oauthConfig.setAccessTokenUrl("https://trello.com/1/OAuthGetAccessToken");
oauthConfig.setRequestTokenUrl("https://trello.com/1/OAuthGetRequestToken");
oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken");
// Replace these with the values you get from
// https://trello.com/1/appKey/generate
oauthConfig.setConsumerKey("Consumer Key");
oauthConfig.setConsumerSecret("Consumer Secret");
var requestData = {
"method": "GET",
"oAuthServiceName": "trello",
"oAuthUseToken": "always"
};
var result = UrlFetchApp.fetch(
"https://api.trello.com/1/members/me/boards",
requestData);
Logger.log(result.getContentText());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.