0

Twitter が書いた OAuth の実装に関するページを読みました。アプリを登録しました。アプリは自分のアカウントにのみアクセスするため、すべてのリクエスト トークンをスキップします。「あなたのアプリ」ページから:

  • 消費者トークン
  • コンシューマ トークン シークレット
  • アクセストークン
  • アクセス トークン シークレット

私は Ruby コードをいくつか書き、その出力を OAuth の初心者向けガイド(Twitter のドキュメントを読むことをお勧めします) に対してテストします。同じ出力が得られます。つまり、署名、ベース文字列、Authorization ヘッダーは同一です。

ただし、Twitter Rest API に接続して認証情報を確認するコマンドを実行すると、常に「署名が正しくありません」という応答が返されます。

github の erikeldridge による要点から別のコード (私のものと非常によく似た) を使用しようとしましたが、どちらも機能しません。(縁石ライブラリを使用して) cURL 経由で接続する代わりに、Net/Http を使用します - 同じエラー応答が返されます。

OAuth gemの使用に切り替えます。Net/Http を使用して接続します。同じエラー応答が返ってきます。

認証情報が API で使用しようとした唯一のコマンドではないことを確認しますが、GET であろうと POST であろうと、追加のパラメーターが必要かどうかに関係なく、すべて同じエラーが発生します。縁石ライブラリを使って無事にSearch APIを使ってきたので接続方法ではないと思います。

これを修正するために私ができることについて、誰かが私に提案をしてもらえますか? ご意見をお寄せいただきありがとうございます。

ルビー 1.9.2; cURL 7.21.2; oauth 0.4.4; 縁石0.7.8; json 1.4.6; OS X 10.6.5;

4

2 に答える 2

1

アプリケーションがデータにアクセスしているだけであっても、単純に「リクエスト トークンをスキップする」ことはできません。要求トークンは、OAuthentication プロセスに不可欠です。

要約すると、OAuth プロセスの 3 つの主要部分は次のとおりです。

  1. リクエスト トークン キーとリクエスト トークン シークレットを取得する
  2. リクエスト トークンを使用して、アプリケーションがデータにアクセスすることを承認します。これにより、ユーザー (あなた) に PIN が提供されます
  3. PIN を使用して、リクエスト トークンとシークレットをアクセス トークンとシークレットに交換します。

より詳細な OAuthentication フローについては、こちらを参照してください。

于 2011-01-22T12:38:37.397 に答える
0

あなたが自分の質問に答えることができるとは思いませんでしたが、サイトが私に報奨金を求めているので...

修正されました。Twitter サイトでコンシューマ キーとシークレットを再生成したところ、機能し始めました。以前のセットが機能しなかった理由がわかりません。コードはしっかりしていて (現在は常に機能しています)、詳細は正しかったです。おそらく彼ら (Twitter) は、より詳細なエラー メッセージを提供できますか? しかし、私は幸せです:)

于 2011-01-28T01:16:44.760 に答える