21

私のアプリは長い間うまく機能していましたが、今では Facebook から次のようなエラーが表示されています。

Content: {"error":{"message":"Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request","type":"OAuthException","code":100}}

https://www.facebook.com/dialog/oauth/?client_id=163840537126360&redirect_uri=http://mycloud.niranjan.com/facebook/callback//empty/?vTitle=Facebook&scope=email,sms,user_about_me,friends_about_me,user_activities,friends_activities,user_birthday,friends_birthday,user_education_history,friends_education_history,user_events,friends_events,user_likes,friends_likes,user_location,friends_location,user_photos,friends_photos,user_videos,friends_videos,user_relationships,friends_relationships,user_status,friends_status,user_checkins,friends_checkins,read_stream,publish_stream

誰でもこれに対する解決策を提案できますか?

4

8 に答える 8

17

これが 6 週間遅れていることは承知していますが、私たちにとって有効な修正が見つかったので、ここに投稿することにしました。同じ問題があり、リターン URL をエンコードしようとした後 (これは機能しませんでした)、次のように URL を構築していることに気付きました。

$url = "http://example.com/";
$redirect_script = "/cgi-bin/redirect.cgi";

$redirect_url = $url . $redirect_script;

ただし、これにより、http://example.com//cgi-bin/redirect.cgiexample.com の後の「//」に注意してください。この URL から二重スラッシュを削除すると、再び機能しました。OP、あなたのリダイレクト URL には、/facebook/callback//empty?etcそれを台無しにしていると私が信じているのと同じものが含まれていることがわかりました。

于 2013-07-09T17:29:31.440 に答える
16

私の場合、私は使用していましたが、 http://127.0.0.1:8000FB は OAuth リダイレクトで自動的に変更さhttp://127.0.0.1:8000/れ、クエリ パラメータの受け渡しを処理します。コード内の URL を末尾のスラッシュに変更すると、問題が解決しました。彼らは最終的に使用可能なバージョンを保存し、それを 2 番目のリクエストと比較していると思われます。

于 2015-07-13T00:14:19.383 に答える
12

Niranjan さん、まったく同じエラー メッセージが表示されました。あなたと同じように、コードに変更を加えることなく、今月から開始されました。

私たちは、redirect_uri が実際に両方の呼び出しでまったく同じであることを注意深く確認しました。最初は authorize 呼び出し、2 番目は access_token 呼び出しです。

Facebook に提出しましたが、「低」とトリアージされました: https://developers.facebook.com/bugs/307245456075215?browse=search_51964e3320a5b5556208759

私たちの場合、異常なことをしていました (したがって、これはあなたのケースには関係ないかもしれません)。私たちの redirect_uri は、別の URL がエンコードされたパス要素として埋め込まれた URL でした。FB に渡されるときに二重にエンコードされた URL 内の URL が、Facebook API サーバーで問題を引き起こし始めていました。

ネストされた URL のエンコーディングを % エンコーディングではなく長い 16 進数に変更することでこれを解決しました。そのため、すべての Facebook サーバーはパス内に何らかの 16 進数を含む単純な redirect_uri を認識し、通常の URL エンコーディング/デコーディングの影響を受けません。

私の疑いでは、Facebook が URL パラメーターをエンコード/デコードする方法を変更し、おそらく 2 回デコードしたのではないかと考えています。

私たちのようなことをしているなら、このアプローチを試してみてください。そうでない場合は、まったく別の単純な redirect_uri を試して、何かが機能するかどうかを確認してください。また、すべての URL クエリ パラメータを正しくエンコード/デコードしていることを確認してください。

于 2013-05-22T18:25:01.660 に答える
4

今日も同じ問題がありましたが、問題は、redirect_uri が http:// URL スキーマを使用し、Facebook が https:// のみを受け入れることであることが判明しました。

于 2014-02-24T15:35:05.943 に答える
1

Facebook の奇妙な動作に直面しました。

私のサイトは https を実行していますが、「検証コードの検証中にエラーが発生しました。redirect_uri が同一であることを確認してください」というエラーが常に表示されます。

しかし、redirect_uri と開発者パネル (OAuth URL) で https を http に変更すると、エラーが消え、認証が正しく機能し始めます。しかし、サイトはまだhttpsを実行しています...

これが誰かに役立つことを願っています。

于 2016-07-01T04:12:31.163 に答える
1

https://ただし、使用しているログイン URL で を使用すると、URL に関する問題http://がスローされることに注意することが重要ですOAuthException

https://そのため、使用している場合は、ログイン URL で使用する必要があります。

これで私の問題は解決しました。

于 2015-12-01T19:48:57.187 に答える