2012-04-26 13 views
8

trello verilerine erişmek için Google apps script numaralı telefondan oAuth kullanmaya çalışıyorum, ancak OAuthService API'sinin oAuth hizmeti hakkında bazı varsayımlar yaptığı görülüyor ve bu trello çalışmıyor bu şekilde.Google apps komut dosyası oauth connect trello ile çalışmadı

Aşağıdaki kod çalışır. ,

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); 
} 

Aşağıdaki kod sayfasını Trello "geri almak için ok basına" beni alacak, ancak Trello geri yönlendirmek için bilmiyor: Bu (bu google'ın oauth öğreticisindeki olan) en heyecan erişmek bu yüzden beni elle bir simge yapıştırmak (ama google bu belirteç ekleme yöntemi ile beni sağlamaz) bunu düzeltmeye çalıştı

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); 
} 

kopyalamak için soran bir sayfaya almak elle yönlendirme geri arama ekleyerek o Yetkilendirme URL'sinde yetki vermeyi sağladım 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 

veya

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 

Ama her ikisi de işe yaramaz. Yanlış bir şey mi yapıyorum? Sağladığım bazı yapılandırma parametrelerini kaçırıyor muyum?

+0

bu sorun giderildi sebep olan hata. –

cevap

10

Bu davranış a bug in the Trello API; Google, yetkilendirme belirtecini aldığında oauth_callback sağlamayı deniyor, ancak belirteç isteğini onayladığınızda Trello oraya yönlendirmiyordu.

Bu hata

beri çözüldüğünü ve ben aşağıdaki kod çalıştığını doğruladıktan:

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

Teşekkürler! Hem de cevap için ve (hatayı) düzeltmek için! – Jauco

+1

Evet, ben de doğruladım. – Jauco