Jau*_*uco 8 oauth google-apps-script 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);
}
Run Code Online (Sandbox Code Playgroud)
以下代码将让我进入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);
}
Run Code Online (Sandbox Code Playgroud)
我尝试通过手动添加我在授权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
Run Code Online (Sandbox Code Playgroud)
要么
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
Run Code Online (Sandbox Code Playgroud)
但两者都不起作用.难道我做错了什么?我错过了一些我应该提供的配置参数吗?
Dan*_*ant 10
此行为是由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());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1730 次 |
最近记录: |