使用Google应用程序和OAuth创建Trello卡

使用Google应用程序和OAuth创建Trello卡,oauth,google-apps-script,trello,Oauth,Google Apps Script,Trello,我正在尝试构建一个与集成的应用程序,其想法是使用它将电子表格和表单中的信息推送到,并在某个板上的挂起的列表上创建卡片 我发现它为我指明了正确的方向,并在OAuth中基于。问题是我不能把这封信寄到黑板上。我运行脚本,OAuth提示符激发,脚本完成,没有错误。我还可以从私人董事会获取数据,因此我认为授权工作正常 那么,我做错了什么,阻止我的脚本POSTing到Trello 以下是我正在使用的代码: var trelloKey = [Trello API key]; var trelloSecret

我正在尝试构建一个与集成的应用程序,其想法是使用它将电子表格和表单中的信息推送到,并在某个板上的
挂起的
列表上创建卡片

我发现它为我指明了正确的方向,并在OAuth中基于。问题是我不能把这封信寄到黑板上。我运行脚本,OAuth提示符激发,脚本完成,没有错误。我还可以
从私人董事会获取
数据,因此我认为授权工作正常

那么,我做错了什么,阻止我的脚本
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);
}

尝试在授权url中添加scope=read,write

发件人:

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


您只需将fetchoptions
contentType
设置为
application/json
。我刚刚解决了同样的问题。

请参阅@ZigMandel上的我的答案。我不确定您的答案是否解决了我的问题。我正在寻找我正在使用的代码不起作用的原因。我也不想存储任何访问令牌。对于我们在这个上下文中所做的工作,关闭auth请求更好。gas oauth帮助程序可能无法与trello一起正确工作。但是,您可以创建自己的urlfetch查询,并从存储令牌的位置对其进行gas回调。由于您可以在trello中请求一个非过期令牌,因此最简单的方法是使用GUI,用户可以在其中输入此类令牌,或者通过回调来收集令牌。然后你总是使用相同的令牌,在没有oauth的情况下使用urlfetch(只需将令牌内容作为url参数)谢谢,你救了我一天!
oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken?scope=read,write");