Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook取消对我的应用程序的授权_Php_Facebook - Fatal编程技术网

Php Facebook取消对我的应用程序的授权

Php Facebook取消对我的应用程序的授权,php,facebook,Php,Facebook,我可以使用FacebookPHPSDK为特定用户取消应用程序的授权吗?基本上,我喜欢有一个切换,这样用户可以链接或取消链接他们的Facebook帐户到我的网站,我有链接部分工作,现在只需要取消链接部分 谢谢如果您转到Facebook开发者,然后选择您的应用程序,然后在“高级”菜单下有一个名为“取消授权回调”的字段。将此设置为域上的URL,当用户自行取消授权时,该URL将被ping。有一些关于其请求的数据格式的文档。不使用当前支持的Graph API:由于当前设置,Graph API(甚至旧版AP

我可以使用FacebookPHPSDK为特定用户取消应用程序的授权吗?基本上,我喜欢有一个切换,这样用户可以链接或取消链接他们的Facebook帐户到我的网站,我有链接部分工作,现在只需要取消链接部分


谢谢

如果您转到Facebook开发者,然后选择您的应用程序,然后在“高级”菜单下有一个名为“取消授权回调”的字段。将此设置为域上的URL,当用户自行取消授权时,该URL将被ping。有一些关于其请求的数据格式的文档。

不使用当前支持的Graph API:由于当前设置,Graph API(甚至旧版API)中没有用于取消应用程序授权的接口。用户必须通过Facebook设置页面明确选择自己进行操作

然而

遗留的RESTAPI有,听起来像是做了您想要的事情


让我知道这是否适合您:我很好奇。

现在Graph API有一种方法可以做到这一点:

删除

您可以完全取消对应用程序的授权,也可以通过向用户ID/权限用户ID/权限/权限名发出HTTP DELETE来代表用户撤销特定权限 分别地必须使用有效的用户访问令牌或当前应用的应用访问令牌发出此请求


请注意,Facebook正在弃用RESTAPI,并为Graph API用户对象添加了对“auth.revokeAuthorization”方法的等效支持

要通过进行应用程序调用来解除用户的链接或取消其权限,请执行以下操作:

    $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
    ));

使用graph API,这可以很好地工作:

$ret = $this->Facebook->api('/me/permissions', 'DELETE');

使用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);
    }
});

谢谢Femi,这正是我想要的,应用程序取消授权。如果用户希望再次将Facebook链接到我的网站,则需要重新确认访问Facebook。这也有效:使用POST参数中的
method=delete
发出
POST
请求,提示您也可以使用应用程序的访问令牌(由
APP_ID
APP_SECRET
组成,与
一起运行)-因此,你不必让用户登录就可以做到这一点嘿,也许我遗漏了什么,但该链接似乎没有任何方式去授权一个应用程序。你可以粘贴一个例子吗?他们已经更改了文档,但仍然是相同的想法,让我编辑答案。我完全尝试了这一点,现在不仅登录流了告诉我
你以前登录过[appname]
,但我甚至在我的
应用程序和网站
选项卡中看不到该应用程序。另外,登录API告诉我我已连接了
。这太让人困惑了!其他人看起来像这样吗?虚拟的无形授权?取消授权回调用于从FB内取消应用程序授权的人员,但问题询问者希望从其应用程序内取消授权。的可能重复项