【发布时间】:2013-12-07 23:49:51
【问题描述】:
我正在尝试构建一个与Trello 集成的Google Apps Script,其想法是使用它将电子表格和表单中的信息推送到Trello API 并在某个pending 列表上创建卡片板。
我发现another question 为我指明了正确的方向,并基于GAS OAuth Documentation 在OAuth 中添加。问题是我不能发布董事会。我运行脚本,OAuth 提示触发,脚本完成且没有错误。我也可以GET来自私人董事会的数据,所以我认为授权工作正常。
那么,我做错了什么导致我的脚本无法POSTing 到 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);
}
【问题讨论】:
-
@ZigMandel 我不确定您的回答是否能解决我的问题。我正在寻找我使用的代码不起作用的原因。我也不打算存储任何访问令牌。一次性授权请求更适合我们在这种情况下所做的事情。
-
gas oauth 助手可能无法与 trello 一起正常工作。但是,您可以进行自己的 urlfetch 查询,并从您可以存储令牌的位置为其提供 gas 回调。由于您可以在 trello 中请求一个不会过期的令牌,因此最简单的方法是拥有一个 GUI,用户可以在其中输入此类令牌,或者您通过回调来收集它。然后你总是使用相同的令牌并使用没有 oauth 的 urlfetch (只需将令牌内容作为 url 参数)
标签: oauth google-apps-script trello