3

AndroidSDKを使用してFacebookの権限を取り消すのに問題があります。

私のアプリで、すべての権限を取り消したい場合があります。Facebookのドキュメントによると、AsyncFacebookRunnerを使用してこれを行うことができ、「権限を指定しないと、アプリケーションの権限が完全に解除されます」。

私は現在このようにやっています:

String method = "DELETE";
Bundle params = new Bundle();
params.putString("permission", "");

mAsyncRunner.request("/me/permissions", params, method, new RequestListener()
                     { ... }, null);

次のようなリクエスト署名を使用します。

void request(String graphPath, Bundle parameters, final String httpMethod,
             RequestListener listener, final Object state)

onComplete()コールバック関数は正常に戻ったようですが、アクセストークンの認証が解除されていないようです。次回facebook.authorize()を呼び出すと、ユーザーをFacebookログインページにプッシュしなくても機能するため、これを推測しています。

アクセストークンの認証を完全に解除するために変更する必要があるアイデアはありますか?または、これを行うための別の/より良い方法はありますか?どうもありがとう!

4

4 に答える 4

3

SDK / Graph APIの新しいバージョンでこれを実行しようとしている人のために-これを実行する正しい方法は、https://developers.facebook.com/docs/graph-api/reference/user/permissionsに示されているように見えます。 //

new Request(
   session,
    "/me/permissions/{permission-to-revoke}",
    null,
    HttpMethod.DELETE,
    new Request.Callback() {
        public void onCompleted(Response response) {
            /* handle the result */
        }
    }
).executeAsync();

2番目のパラメーターをオフのままに/{permission-to-revoke}すると、すべての権限が取り消されます

于 2014-01-01T05:19:25.600 に答える
3

最新のSDKを使用してユーザーのFacebookアカウントからアプリケーション全体(権限だけでなく)を削除できます(私のものは4.1.1です)

void deleteFacebookApplication(){
    new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions", null, HttpMethod.DELETE, new GraphRequest.Callback() {
        @Override
        public void onCompleted(GraphResponse response) {
            boolean isSuccess = false;
            try {
                isSuccess = response.getJSONObject().getBoolean("success");
            } catch (JSONException e) {
                e.printStackTrace();
            }
            if (isSuccess && response.getError()==null){
                // Application deleted from Facebook account
            }

        }
    }).executeAsync();
}
于 2016-01-05T14:25:53.503 に答える
1

この投稿から、Facebookは私のアプリや他の人の許可を取り消すことができます。プログラムでアプリケーションの許可を取り消すことはできません。残念ながら、上記の呼び出しはonCreate()に正常に戻りますが、ユーザーのアプリの認証を解除/削除することはありません。

結論:アプリの認証を解除する唯一の方法は、ユーザーがFacebookで直接行うことのようです。誰かが違うことを知っているなら、そう言ってください-しかし、そうでなければ、あなたの時間を無駄にしないでください!ありがとう。

于 2012-05-15T01:07:24.680 に答える
0

質問で提案されたコードを使用していますが、テストアプリケーションの認証が完全に解除されました。それを数回テストし、それはそれらのすべてで動作しました。

これは、公式のFacebookドキュメントで提案されているコードでもあります:https ://developers.facebook.com/docs/mobile/android/build/-ステップ7

于 2012-10-01T09:43:55.920 に答える