3

免責事項:私はまだMVC3(特にOAuth)から始めています。私は基本的な間違いを犯している可能性があります。

問題

私のコントローラーは、Cookieが保存されていないことを確認します[注:はい、別のディスカッションでCookieを使用しています。それを受け入れて先に進みましょう。]そして私をTwitterに誘導します。素晴らしい。ただし、[承認]をクリックすると、Twitterの承認ページに戻ります。

これまでの私の予感

私のアプリは、私のページへのTwitterのポストバック/コールバックを正しく処理していないようです。

成分

  • ASP.NET MVC 3
  • Twitterizerライブラリ
  • C#

一般的な考え方/ロジックフロー

これはMVC3とOAuthを使用した最初の回避策であるため、これに問題がある可能性があります。

http://i56.tinypic.com/2rxchw7.png

コード

これがどのように流れるべきかについての私の認識が正しいことを確認したいので、そして理解できるようにそれを掘り下げることが少しあるので、私は最初にそれを投稿するのをためらっています。

あなたが与えることができるどんな助けにも前もって感謝します!

4

2 に答える 2

0

私があなたのフローチャートを正しく読んでいるなら、あなたはoauthフローの一部を誤解しているかもしれません。ユーザーが初めてアクセスしたとき(Cookieなし、トークン/ベリファイアなし)のようにチャートをたどったとき、Twitterの操作後にPOSTがあります。POSTはありません。Twitterのサーバーはコールバックを実行しません。ユーザーは、クエリ文字列にトークンとベリファイアが追加されたコールバックURLにリダイレクトされます(HTTP302)。

また、ベリファイアとトークンのどちらが提供されているかによって、動作が異なるのは奇妙に思えます。あなたがそれを正しくやっているなら、あなたはもう一方なしで一方を持っていることは決してないでしょう、そしてあなたがそれを間違ってしているとしても、あなたはトークンなしで検証者を持っていることは決してありません。

どの時点でGetAccessTokenメソッドを呼び出していますか?

于 2011-08-25T18:49:40.080 に答える
0

私は Twitter API のプロではないので、100% 確信はありません。しかし、Twitter は localhost をコールバックとして許可していないと思います。また、リダイレクトの実行を許可する前に、URL が解決するルックアップを行う可能性があります。.hosts ファイルで指定されたものに到達することはできません。

oauth_callbackできれば自分で制御するライブ URL に単純に発行することを検討してください。あなたがそこに終わることを確認してください。次に、oauth_token と oauth_verifier を取得する方法を考えます。(プロのヒント:URLをスクレイピングするか、可能であれば、スクレイピングを容易にするためにページに変数を画面に出力させます).

また、コールバックとして「oob」を指定してテストし、何が起こるかを確認します。

編集: Web アプリケーションを実行しているため、URL のスクレイピングが機能しないことに気付きました。ごめん。しかし、ライブ URL で oauth_token と oauth_verifier を受け取り、そのページから localhost などにリダイレクトするのはどうでしょうか?

于 2011-08-22T17:15:04.597 に答える