4

現在、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 を指定していないため、2 番目のリクエストは失敗します。

残念ながら、このベリファイアを提供する方法については、まったくわかりません。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');

何も変わりません:-/

何か案は?

4

1 に答える 1

5

npm の node-trello パッケージ (以下にリンク) は、私にとっては問題なく oauth されており、検査によってコードに問題は見つかりませんでした。私があなただったら、node-trelloをインストールして、それを実際の例として使用します。それでもうまくいかない場合は、開発者キーを再生成する必要があるかもしれません。

ノードトレロ:

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

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

于 2012-09-12T19:14:12.233 に答える