Facebook帐户取消Facebook应用程序的链接或取消其权限,并检查从Facebook应用程序链接的状态
我的网站应用程序具有Facebook登录功能。并且我的应用程序出现在Facebook上。使用facebook登录正常 但该应用程序具有将facebook帐户链接到facebook应用程序并将其取消链接的功能 如何检查FB账户是否与特定FB应用链接? 以及如何从特定的FB应用程序断开FB帐户链接,如果该用户的请求链接?Facebook帐户取消Facebook应用程序的链接或取消其权限,并检查从Facebook应用程序链接的状态,facebook,facebook-graph-api,web,facebook-fql,facebook-php-sdk,Facebook,Facebook Graph Api,Web,Facebook Fql,Facebook Php Sdk,我的网站应用程序具有Facebook登录功能。并且我的应用程序出现在Facebook上。使用facebook登录正常 但该应用程序具有将facebook帐户链接到facebook应用程序并将其取消链接的功能 如何检查FB账户是否与特定FB应用链接? 以及如何从特定的FB应用程序断开FB帐户链接,如果该用户的请求链接? 链接意味着我们选择允许FB应用程序按请求运行这可以通过简单的FQL查询轻松实现: SELECT uid FROM user WHERE uid = {USER_ID_HERE} A
链接意味着我们选择允许FB应用程序按请求运行这可以通过简单的FQL查询轻松实现:
SELECT uid FROM user WHERE uid = {USER_ID_HERE} AND is_app_user = true
这将返回用户的uid,如果用户与应用程序连接,则不会返回任何内容,否则将使用您的API调用/{user_ID}/权限,并显示该用户是否已授权您的应用程序
如果您有用户的访问令牌,也可以使用该令牌进行检查
响应类型如下所示:
{
"data": [
{
"installed": 1,
"bookmarked": 1
}
]
}
对于用户授予你的应用程序的每个扩展权限,都会有一个条目,安装行表示他们已经安装了你的应用程序
对于尚未安装您的应用程序的用户,响应将为:
{
"data": [
]
}
您还可以使用FQL,正如Juicy Scripter在另一个答案中所建议的那样,通过Graph API,从Thank@DMCS: 您可以取消对应用程序的授权或吊销特定的扩展证书 通过向用户发出HTTP DELETE请求来代表用户授予权限 使用该应用的用户访问令牌配置文件\u ID/权限 RESTAPI为您提供auth.revokeAuthorization。你可以在网上看到更多关于这方面的信息 请注意,RESTAPI将在将来被弃用,尽管Facebook没有指定确切的时间
我不知道有什么方法可以获得一个特定用户所连接的应用程序列表,也不知道Facebook会提供这些应用程序的任何原因。要查看用户是否连接到您的应用程序,此处的其他答案应为您提供一些想法。对于新的图形,有一种记录在案的取消授权方法,我已在图形API资源管理器中对其进行了测试,效果良好。使用有效的访问令牌向我/权限发送HTTP Delete命令。它不仅会使访问令牌无效,还会将应用程序从用户的授权应用程序列表中删除。这需要用户通过权限屏幕再次授权应用程序以使用它。快乐编码 请注意,Facebook正在弃用REST API,并为auth.revokeAuthorization方法向Graph API用户对象添加了等效的支持
//$this->facebook is facebook object
//$userid is of logged in user or can be written hardcoded.
For checking linked in or not by making api call.
$user_id = $this->facebook->getUser();
$result = $this->facebook->api(array(
'method' => 'fql.query',
'query' => "SELECT is_app_user FROM user WHERE uid=$user_id"
));
$is_installed = $result[0]['is_app_user'];
if($is_installed==1) {
echo 'Linked';
}
else {
echo 'Not Linked';
}
For delinking or deauthorization the user by making app call:
$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
));
以下是如何使用Facebook iOS SDK v4取消应用程序的授权:
#import <FBSDKCoreKit/FBSDKCoreKit.h>
...
NSString *graphPath = [NSString stringWithFormat:@"/%@/permissions", [FBSDKAccessToken currentAccessToken].userID];
[[[FBSDKGraphRequest alloc] initWithGraphPath:graphPath parameters:nil HTTPMethod:@"DELETE"]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if ( !error ) {
NSLog(@"Facebook unlinked");
}
}];
您可以使用应用访问令牌向/{USER_ID}/权限发出删除请求。这是旧的auth.revokeAuthorization调用的替换,将卸载该用户的应用程序如何发出此删除请求。请你详细说明一下,我不确定我能不能进一步简化它;如果您的SDK或代码无法发出HTTP DELETE REQUESTS,请将HTTP GET和include&method=DELETE作为GET参数来“伪造”删除请求。实际上,对于新的图形,有一种记录在案的方法来取消授权。我已经在图形API资源管理器中对其进行了测试,它可以正常工作。使用有效的访问令牌向我/权限发送HTTP Delete命令。它不仅会使访问令牌失效,还会从用户的身份验证应用列表中删除该应用。您能简要介绍一下吗?我试图调用该方法,但失败了。新年快乐。你需要知道什么?这是一个HTTP删除请求,所以获取一个有效的访问令牌并使用cURL,比如cURL-X DELETEhttps://graph.facebook.com/PROFILE_ID/permissions?access_token=ACCESS_TOKENBTW,也可以是GET或POST请求,参数方法等于delete。@Júlio Santos:如何使用curl?在哪里调用该url?如何使用有效的访问令牌向我/权限发送HTTP Delete命令?使用Facebook PHP SDK,您可以使用getAccessToken创建url:/me/权限?访问令牌=???哪里是访问令牌。然后,您需要使用类似cURL的东西来更改HTTP谓词以删除并发出该请求。