Ajax HTTP DELETE リクエストを介してアクセス許可を削除しようとしていますが、返される応答は、グラフ API ドキュメントが取得する必要があると言っているものではありません。ブール値の応答を取得する必要があると表示されます (「削除が成功した場合は True、それ以外の場合はエラーです。」)。しかし、代わりに、アクセス許可リストのオブジェクト全体を取得しています:
var revokePermission = function(permName) {
var revoke_perm_url = "https://graph.facebook.com/me/permissions" +
"?access_token=" + access_token + "&callback=?";
$.ajax({
type: "DELETE",
dataType: "jsonp",
url: revoke_perm_url,
data: {'permission': permName},
success: function(response){
console.log(response);
}
});
}
revokePermission(permission_name);
これが私が返すものです:
data: Array[1]
0: Object
bookmarked: 1
create_note: 1
email: 1
installed: 1
photo_upload: 1
publish_actions: 1
publish_stream: 1
read_stream: 1
share_item: 1
status_update: 1
user_interests: 1
user_likes: 1
user_status: 1
video_upload: 1
APIドキュメントには次のように記載されていることに注意してください。
HTTP DELETE をそれぞれ PROFILE_ID/permissions または PROFILE_ID/permissions/PERMISSION_NAME に発行することで、アプリケーションを完全に認証解除するか、ユーザーに代わって特定のアクセス許可を取り消すことができます。このリクエストは、現在のアプリの値 user access_token で行う必要があります。
私はこれをすべて理解しているので、特定のパーミッション URL (つまり、「/permissions/user_likes/」) または ajax データ パラメーターを介して送信されたパーミッションを含むベース パーミッション URL にリクエストを発行すると、どちらも次のオブジェクトを返すだけです。現在のすべてのアクセス許可と、削除を要求したアクセス許可は変更されません。
ただし、URL と送信されるデータの両方にアクセス許可を設定すると、エラーのあるオブジェクトが返されます。
Object
error: Object
code: 2500
message: "Cannot specify permission in both the path and query parameter."
type: "OAuthException"
誰が何が起こっているのか知っていますか?auth.revokeExtendedPermission の LEGACY REST メソッドは、(http://developers.facebook.com/docs/reference/rest/auth.revokeExtendedPermission/) に従って実際に機能することに注意してください。ブール値の応答を返し、それぞれの権限が削除されます。
ソリューション?