2012-04-10 6 views
1

ユーザの代わりにFacebook APIにアクセスするには、OAuth access_tokenを取得する必要があります。プロセスは十分に文書化されていますが(FBからの文書化されていない要件のようですが)この「検証コードの検証中にエラーが発生しました」を取得します。 access_tokenの検証コードを交換しようとしています。"検証コードの検証中にエラーが発生しました。 access_tokenをリクエストしたとき

このようなトラブルを抱えている人は多いようですが、ほとんどの場合、redirect_uriが問題と思われますが、ここでredirect_uriは問題ありません(認証ダイアログに渡されたものとまったく同じですが、スラッシュとファンキーな文字や後続のクエリ文字列を持っていない、私はこの問題についてほとんどのスレッドを読んで、提案された解決策のどれも私の問題を解決しなかった)

最も興味深いのは、ログは、私が使っている正確なリクエストURLを書いて、手動でアクセストークンを取得しようとすると動作します。ユーザーがログインしても、しばらくしてから作業してもリクエストが失敗するようなものです。

結局のところ、うまくいっているということは、要求がうまくいっているものの、Facebookの側に問題があると思われます。複製が関係していて、認証ダイアログが完了するまでに完了しなかったようです私はトークンのコードを交換しようとします。

私は、2回の呼び出しの間の遅延が十分で、2回目の呼び出しが成功することを期待して、再試行メカニズムを組み込みましたが、どちらも機能しません。

また、ほとんどの場合、動作していますが、動作しているときと失敗したときの違いはわかりません。ユーザーだけが変更されます。

ご意見をいただければ幸いです。

+0

Facebook APIについて話していることを先に述べた場合は、あなたの質問を理解しやすくなります。 –

+0

ニック、そうだね、ここに当てはまらないときは、ガータグのために私はあなたを森の外に出ると言うことができる。(それはガーで実行されているが) –

+0

もしあなたがFacebookのページに埋め込んでいるなら、私は署名されたリクエストルートがoauthトークンを得るもっと簡単な方法であることを発見しました。しかし、あなたがfacebookを外している場合(古いFacebookのように)、この方法に悩まされています。これは働くことができますが、少し面倒です。 –

答えて

0

私はこの問題にぶつかり、解決しました。

問題は、oauthコールでredirect_uriをhttp://apps.facebook.com/myapp/と指定して、https://apps.facebook.com/myapp/の代わりに指定したことでした。

奇妙なことの1つは、ブラウザのアドレスフィールドに入力した場合とまったく同じパラメータが機能するが、アプリケーションからのサーバー側の要求ではないということです。

HTTPSの有無にかかわらずFacebookをブラウズするかどうかをユーザーごとに指定できるため、認証フローをテストするときに両方のモードで設定をテストすることをお勧めします。

+0

いいですね! –

関連する問題