Я пытался использовать oAuth в скрипте приложений Googleдля доступа к данным Trello, но кажется, что API OAuthService делает некоторые предположения о службе oAuth, и что Trello не работает туда.
Работает следующий код.Он получает доступ к твиттеру (это из руководства 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();
oauthConfig.setConsumerSecret();
var requestData = {
"method": "GET",
"oAuthServiceName": "twitter",
"oAuthUseToken": "always"
};
var result = UrlFetchApp.fetch("https://api.twitter.com/1/statuses/mentions.json", requestData);
}
Следующий код приведет меня к странице Trello «нажмите ок, чтобы вернуться», но Trello не знает, как перенаправить обратно, поэтому я получаю страница, которая просит меня вручную скопировать и вставить токен (но google не предоставляет мне метод вставки этого токена)
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();
oauthConfig.setConsumerSecret();
var requestData = {
"method": "GET",
"oAuthServiceName": "trello",
"oAuthUseToken": "always"
};
var result = UrlFetchApp.fetch(
"https://api.trello.com/1/members/me/boards",
requestData);
}
Я попытался исправить это, вручную добавив обратный вызов перенаправления, который я предоставляю для twitter в авторизации URL
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
Но оба не работают. Я делаю что-то неправильно? Я пропустил некоторые параметры конфигурации, которые я должен предоставить?