2012-04-26 26 views
8

Google apps scriptにoAuthを使用してtrelloデータにアクセスしようとしていましたが、OAuthService APIがoAuthサービスに関するいくつかの仮定を行い、trelloが機能しないようですそうですね。Google Appsスクリプトoauth connectがtrelloと連携しない

次のコードが機能します。 、

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は戻ってリダイレクトする方法を知りません:それは(これはGoogleのOAuthのチュートリアルからである)のTwitterへのアクセスを取得しますので、私は手動でリダイレクトコールバックを追加することによって、これを修正しようとしたトークンを貼り付けます(ただし、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(<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 

しかし、両方が動作しません。私は何か間違っているのですか?私が提供すべきいくつかの設定パラメータがありませんか?

+0

この問題が修正されましたバグを。 –

答えて

10

この現象はa bug in the 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()); 
} 
+0

ありがとう!答えと(私は)バグを修正するための両方のために! – Jauco

+1

はい、私もそれを検証しました。 – Jauco

関連する問題