我正在尝试构建一个与Trello集成的Google应用程序脚本,其想法是使用它将电子表格和表单中的信息推送到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);
}
您只需要设置提取选项contentType
到application/json
。我刚刚通过这个解决了同样的问题。
尝试在您的授权url中添加scope=read,write。
来自:
oauthConfig.setAuthorizationUrl('https://trello.com/1/OAuthAuthorizeToken');
至:
oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken?scope=read,write");