1

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

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

最も興味深いのは、ログを確認すると、使用する正確なリクエスト URL を記述し、手動でアクセス トークンを取得しようとすると、機能することです。ユーザーがログインするとリクエストが失敗するようですが、しばらくすると機能します。

結局、それが機能しているという事実は、リクエストが正常であることを示しているように見えますが、Facebook 側に問題があることを示しています。コードをトークンに交換します。

2 つの呼び出しの間の遅延が十分で、2 番目の呼び出しが成功することを期待して、再試行メカニズムを配置しましたが、それも機能しません。

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

どんな提案でも大歓迎です。

4

1 に答える 1

0

この問題にぶつかって解決しました。

問題は、oauth 呼び出しで redirect_uriをhttps://apps.facebook.com/myapp/ではなくhttp://apps.facebook.com/myapp/に指定したことです。

ちょっと変わったことの 1 つは、ブラウザーのアドレス フィールドにパラメーターを入力するとまったく同じパラメーターが機能することですが、アプリケーションからのサーバー側の要求としてではありません。

HTTPS を使用して Facebook を閲覧するか、HTTPS を使用せずに Facebook を閲覧するかをユーザーごとに指定できるため、認証フローをテストするときに両方のモードで設定をテストすることをお勧めします。

于 2012-08-13T12:44:10.923 に答える