使用OAuth以编程方式访问Trello

时间:2012-09-12 06:27:25

标签: trello authentication oauth

我目前正在尝试使用Node.js Web应用程序访问私有Trello板。我想要实现的是创建新卡。不幸的是,我陷入了接收令牌的过程中。

我使用node-oath库并按如下方式嵌入:

var OAuth = require('oauth').OAuth,
    oauth = new OAuth('https://trello.com/1/OAuthGetRequestToken',
                      'https://trello.com/1/OAuthGetAccessToken',
                      myKey,
                      myOAuthSecret,
                      '1.0',
                      undefined,
                      'PLAINTEXT');

之后,我尝试通过调用来获取令牌:

oauth.getOAuthRequestToken(function (error, oauth_token, oauth_secret, results) {
  if (error) return console.log('1: ' + JSON.stringify(error));
    oauth.getOAuthAccessToken(oauth_token, oauth_secret, function (error, oauth_access_token, oauth_access_token_secret, access_results) {
      if (error) return console.log('2: ' + JSON.stringify(error));
      // ...

当我运行此代码时,我总是收到以下错误消息:

1: {"statusCode":500,"data":"Invalid Signature"}

所以,显然第一个OAuth请求有问题。我已经看到Trello也支持HMAC-SHA1。当我使用它而不是PLAINTEXT时,第一个请求成功,但第二个请求失败,因为我没有指定oauth_verifier。

不幸的是,我对如何提供此验证器没有任何想法。我已经阅读了OAuth RFC,但这对我没有帮助。

基本上,我实际上不需要 HMAC-SHA1,PLAINTEXT就可以了。

有人知道可能出现的问题吗?

PS:我已经在Trello开发板上读到,一旦有一个错误不允许Trello访问正文中发送的密钥,所以他们建议你使用查询字符串发送它。但即使我将第一个代码块更改为

var OAuth = require('oauth').OAuth,
    oauth = new OAuth('https://trello.com/1/OAuthGetRequestToken?key=' + myKey,
                      'https://trello.com/1/OAuthGetAccessToken',
                      myKey,
                      myOAuthSecret,
                      '1.0',
                      undefined,
                      'PLAINTEXT');

它根本不会改变任何东西: - /

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

来自npm(下面链接)的node-trello软件包对我来说很好,我没有发现你的代码有任何问题需要检查;如果我是你,我会做的是安装node-trello并将其用作一个工作示例;如果这不起作用,那么您可能需要重新生成开发人员密钥。

<强>节点trello:

https://github.com/adunkman/node-trello

https://github.com/adunkman/node-trello/blob/master/lib/trello-oauth.coffee