2013-11-22 39 views
2

我試圖建立一個Google Apps ScriptTrello集成,其用意就是用它來從電子表格和形式進入Trello API推動信息和pending名單上創建卡上有一定板。創建與谷歌Apps的Trello卡和OAuth

我發現another question是我指出了正確的方向,並在OAuth的基礎上增加GAS OAuth Documentation。問題是我不能發佈董事會。我運行腳本,觸發OAuth提示,腳本完成而沒有錯誤。我也可以從私人委員會獲得GET數據,所以我認爲授權工作正常。

那麼,我做錯了什麼,阻止我的腳本從POST ing到Trello?

這裏是我的工作代碼:

var trelloKey = [Trello API key]; 
var trelloSecret = [Trello API key secret]; 
var trelloList = [the id of the list we're posting to]; 

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(trelloKey); 
    oauthConfig.setConsumerSecret(trelloSecret); 

function createTrelloCard() { 

    //POST [/1/cards], Required permissions: write 
    var payload = {'name': 'apiUploadedCard', 
       'desc': 'description', 
       'pos': 'top', 
       'due': '', 
       'idList': trelloList}; 

    var url = 'https://api.trello.com/1/cards' 
    var options = {'method' : 'post', 
       'payload' : payload, 
       'oAuthServiceName' : 'trello', 
       'oAuthUseToken' : 'always'}; 

    UrlFetchApp.fetch(url, options); 
} 
+0

請參閱我的答案http://stackoverflow.com/questions/19597327/how-to-authorize-and-post-update-trello-card-from-a-google-docs-script/19646691 –

+0

@ZigMandel I我不確定你的回答是否解決了我的問題。我正在尋找爲什麼我使用的代碼不起作用的原因。我也不想存儲任何訪問令牌。一次性認證請求對於我們在這種情況下所做的更好。 – justin

+0

氣體oauth助手可能無法正確使用trello。但是,您可以製作自己的urlfetch查詢,並從可以存儲令牌的位置給它一個氣體回調。由於您可以在trello中請求一個非過期令牌,因此最簡單的方法是使用GUI輸入令牌,或者使用回調來收集令牌。那麼你只是總是使用相同的標記,並使用沒有oauth的urlfetch(只需將標記的東西作爲url參數) –

回答

0

嘗試添加範圍=讀,在您的授權網址寫

來自:

oauthConfig.setAuthorizationUrl('https://trello.com/1/OAuthAuthorizeToken'); 

到:

oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken?scope=read,write"); 
2

你只需要設置contentType取選項application/json。我剛剛解決了同樣的問題。