2012-04-26 25 views
8

मैं Trello डेटा का उपयोग करने Google apps script में OAuth का उपयोग करने की कोशिश कर रहा है के साथ काम नहीं करता है ऐप्लिकेशन है, लेकिन ऐसा लगता है कि OAuthService एपीआई oAuth सेवा के बारे में कुछ धारणाएं बनाता है और Trello काम नहीं करता है कि उस तरफ।गूगल स्क्रिप्ट 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(<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); 
} 

मुझे लगता है कि ठीक करने के लिए करने की कोशिश की प्रतिलिपि बनाने के लिए करने के लिए मिल मैन्युअल रीडायरेक्ट कॉलबैक जोड़कर कि मैं प्राधिकरण यूआरएल

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 प्रदान करने का प्रयास कर रहा है जब इसे प्राधिकरण टोकन प्राप्त हो जाता है, लेकिन जब आप टोकन अनुरोध को स्वीकार करते हैं तो ट्रेलो वहां रीडायरेक्ट नहीं कर रहा था।

इस बग के बाद से हल किया गया है, और मैं सत्यापित किया है कि निम्नलिखित कोड काम करता है:

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