我可以使用Facebook PHP SDK取消对特定用户的应用程序的授权,基本上我喜欢切换,以便用户可以将他们的Facebook帐户链接或取消链接到我的网站,我有链接部分工作,现在只需要取消关联部分。
由于
答案 0 :(得分:12)
现在,图谱API可以实现此目的:https://developers.facebook.com/docs/reference/api/user/#permissions
删除强>
您可以完全取消授权应用,也可以代表用户撤消特定权限,方法是向 USER_ID /权限或发出 HTTP DELETE USER_ID /权限/ PERMISSION_NAME 强> 分别。此请求必须使用有效的用户access_token或当前应用的应用访问令牌。
答案 1 :(得分:7)
使用图形API,这很好用:
$ret = $this->Facebook->api('/me/permissions', 'DELETE');
答案 2 :(得分:3)
不使用当前支持的Graph API:按照目前的设置,Graph API(甚至旧版API)中没有用于取消对应用程序授权的界面。用户必须明确选择通过Facebook设置页面自行完成。
...然而
遗留的REST api有http://developers.facebook.com/docs/reference/rest/auth.revokeAuthorization/,它的声音就像你想做的那样。
如果这对您有用,请告诉我:我很好奇。
答案 3 :(得分:1)
请注意Facebook在弃用REST API的过程中,并为“auth.revokeAuthorization”方法添加了对Graph API User对象的等效支持。
通过拨打应用程序来对用户进行脱钩或取消授权:
$user_id = $this->facebook->getUser();
$access_token=$this->facebook->getAccessToken();
$result = $this->facebook->api(array(
'method' => 'auth.revokeAuthorization',
'uid' =>$user_id,
'access_token'=>$access_token
));
答案 4 :(得分:1)
使用JS API,可以像这样取消授权应用程序:
FB.api('/me/permissions', 'DELETE', function(res){
if(res === true){
console.log('app deauthorized');
}else if(res.error){
console.error(res.error.type + ': ' + res.error.message);
}else{
console.log(res);
}
});
或删除特定权限:
FB.api('/me/permissions/user_birthday', 'DELETE', function(res){
if(res === true){
console.log('permission removed');
}else if(res.error){
console.error(res.error.type + ': ' + res.error.message);
}else{
console.log(res);
}
});
答案 5 :(得分:-1)
如果你去Facebook Developer,然后选择你的应用程序,然后在“高级”菜单下有一个名为“取消授权回拨”的字段。将此设置为您域上的URL,当用户取消授权时会对其进行ping操作,但有一些关于其请求的数据格式的文档here。