1

モバイル デバイスのアプリ センターから認証を行おうとしていますが、アクセス トークンのコード パラメーターを交換しようとすると、次のエラーが発生します。

{
    "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
    }
}

私のアプリはサーバー側の認証を使用するため、認証トークン パラメーターはクエリ文字列形式です。

私が呼び出している URL はhttps://graph.facebook.com/oauth/access_tokenで、送信先の redirect_uri パラメータは次のようなものです。

http://www.example.com?ref=app_directory&code=codefromfb&fb_source=appcenter_mobile&fb_appcenter=1

www.example.com は、アプリ設定のモバイル サイト URL フィールドに設定した値です。

App Center for Web からの認証でOKです。

モバイルデバイスからのリダイレクトURIの何が問題なのかわかりません...

私たちを手伝ってくれますか?

4

3 に答える 3

2

URI の末尾にスラッシュが必要であることを参照しているこの投稿を見つけました

Facebook djangoアプリのoauthでredirect_uriエラーが発生しました

于 2012-12-03T05:40:32.617 に答える
1

同じエラーが発生しました。解決できませんでしたが、回避策を見つけました。FacebookからモバイルWebアプリに自動的に送信されるコードパラメーターを無視します。代わりに、自分でコードをリクエストし、コードのリクエストに使用したのと同じredirect_uriを使用してaccess_tokenとコードを交換します。

回避策を簡単に適用できるように、アプリ>設定>権限で、認証トークンパラメーターをクエリ文字列からURIフラグメントに変更できます。そうすると、Facebookはコードパラメータを自動的に送信しません-あなたはそれを要求する必要があります-それが必要なことです。

これを解決する別の方法は、URIフラグメントを使用してクライアント側の認証フローを実装するか、クライアント側でURIフラグメントを解析し、access_tokenをパラメーターとしてサーバーに送信することです。このアプローチはまだテストしていません。

于 2012-11-06T12:04:00.963 に答える
1

アプリセンター認証に使用されているURLをリダイレクトする

desktop:  http://www.example.com/?fb_source=appcenter&fb_appcenter=1
mobile:   http://www.example.com/?ref=app_directory
          (part fb_source=appcenter_mobile&fb_appcenter=1 should be excluded for mobile, I think that it's FB bug)

どこ:

http/https      - depends on request
www.example.com - you should use exactly same string as saved at application settings (https://developers.facebook.com/apps/YOUR_APPLICATION_NUMBER/summary) Domain name is case sensitive for Facebook (also bug)
于 2013-03-04T00:34:44.473 に答える