【问题标题】:Creating Trello cards with Google Apps and OAuth使用 Google Apps 和 OAuth 创建 Trello 卡片
【发布时间】: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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    来自:

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

    到:

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

    【讨论】:

    • 谢谢,你拯救了我的一天!
    猜你喜欢
    • 2014-10-30
    • 2012-09-08
    • 2015-03-29
    • 2016-04-20
    • 1970-01-01
    • 2020-04-27
    • 2015-07-10
    • 2012-08-20
    • 2020-10-20
    相关资源
    最近更新 更多