1. ホーム
  2. android

[解決済み] サーバーからのAPIコールでappsecret_proofの引数が必要

2022-02-26 23:43:39

質問事項

Android Facebook SDKでAPIリクエストを行うことができません。また、ログインコールバックからユーザーを取得することもできず、常にnullを返します。

特に、newMeRequestでは、以下のようなエラーメッセージが表示されます。

{ "error": {
 "message": "API calls from the server require an appsecret_proof argument", 
 "type": "GraphMethodException", 
 "code": 100   } }

実際、Facebookアプリのオプションでフラグがtrueに設定されているため、かなり明白なように思えます。しかし、モバイルSDKでは、secretなしでAPIリクエストを行うことが可能であることは分かっています。しかし、アクセストークンを currentSession を Facebook Graph API Debugger で確認すると、上記と同じレスポンスが返ってきます。

これが新しいAndroid Facebook SDKと関係があるのかどうかはわかりませんが、私のコードは基本的に例にあるものと同じです。ログインはうまくいき、セッション・トークンを取得しましたが、APIリクエストを行うことができません...。

loginButton.setUserInfoChangedCallback(new LoginButton.UserInfoChangedCallback() {
    @Override
    public void onUserInfoFetched(GraphUser user) {
        graphUser = user;
    }
});


Request.newMeRequest(currentSession, new Request.GraphUserCallback() {
    @Override
    public void onCompleted(GraphUser user, Response response) {
    }
    }
}).executeAsync();

解決方法は?

私がそれを動作させることができた唯一の方法は、以下のように設定することでした。 No その App Secret proof for API calls をfacebookアプリの詳細設定に追加してください。

しかし、これは解決策ではなく、修正です。 Yes (iOSのfacebook sdkで可能なように)。