0

ユーザーが Facebook 設定ページを介してアプリへのアクセスを取り消したときに、Facebook への共有で発生する可能性のあるエラーを処理しようとしています。

Facebook のドキュメントには次のように書かれています。

ただし、これは、ユーザーがアプリへのアクセスを取り消した可能性がある状況や、ユーザーがパスワードを変更した場合を考慮していないことに注意してください。常に無効な access_token に注意し、ユーザーをリダイレクトしてアプリを再承認する必要があります。無効なアクセス トークンの場合、onComplete() メソッドの「response」パラメータで次のエラーが返されます。

私のコード:

facebook.dialog(activity, "feed", params, new DialogListener()
{

    @Override
    public void onFacebookError(FacebookError e)
    {
        Log.printMethod();
        showErrorToast(activity, e);
    }

    @Override
    public void onError(DialogError e)
    {
        Log.printMethod();
        showErrorToast(activity, e);
    }

    @Override
    public void onComplete(Bundle values)
    {
        Log.printMethod();
    }

    @Override
    public void onCancel()
    {   
        Log.printMethod();
    }
});     

これらのメソッドのいずれも呼び出されないという問題があるため、ユーザーがアクセス許可を取り消したという手掛かりを得ることができず、再度承認するように依頼する必要があります。

代わりに、ユーザーは webview でこのようなものを見ます。何か案は? ここに画像の説明を入力

4

1 に答える 1

1

最初にユーザーの権限を確認してください: https://developers.facebook.com/docs/facebook-login/permissions/#checking

休み:

https://graph.facebook.com/USER_ID/permissions?access_token=APP_TOKEN https://graph.facebook.com/me/permissions?access_token=USER_TOKEN

JS:

FB.api('/me/permissions', function(response) {
    var perms = response.data[0];
    if ('publish_actions' in perms && perms.publish_actions === 1) {
        // send
    }
}

応答例:

{
    "data": [
        {
            "installed": 1,
            "basic_info": 1,
            "email": 1,
            "publish_actions": 1,
            "user_friends": 1
        }
    ]
}
于 2013-10-23T21:07:43.617 に答える