我一直在试图使用OAuth在Google apps script访问trello数据的工作,但似乎OAuthService API使得了解OAuth服务的一些假设和trello不起作用那样。谷歌Apps脚本的OAuth连接不使用Trello
以下代码有效。它获得的访问Twitter的(这是从谷歌的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“按OK回到”页面,但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);
}
我试图修复一个页面通过手动添加重定向回调我提供给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
但两者不工作。难道我做错了什么?我是否缺少一些我应该提供的配置参数?
导致此问题已得到修复的bug。 – 2012-05-03 14:58:56