2

我正在尝试构建一个与Trello集成的Google Apps 脚本,其想法是使用它将电子表格和表单中的信息推送到Trello API并在某个板上的列表上创建卡片。pending

我发现了另一个问题,它为我指明了正确的方向,并根据GAS OAuth 文档添加到 OAuth 中。问题是我不能发布董事会。我运行脚本,OAuth 提示触发,脚本完成且没有错误。我也可以GET从私人董事会获得数据,所以我认为授权工作正常。

那么,我做错了什么导致我的脚本无法POST使用 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);
}
4

2 回答 2

2

您只需将 fetch 选项设置contentTypeapplication/json. 我刚刚解决了同样的问题。

于 2015-05-05T10:11:00.097 回答
1

尝试在您的授权网址中添加scope=read,write 。

从:

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

至:

oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken?scope=read,write");
于 2014-03-27T22:40:57.883 回答