gpt4 book ai didi

ios - 从 Facebook 注销 parse.com 用户失败

转载 作者:行者123 更新时间:2023-11-29 01:27:09 24 4
gpt4 key购买 nike

我在游戏中使用登录 Facebook

PFFacebookUtils logInInBackgroundWithReadPermissions:@[@"email"]
block:^(PFUser *user, NSError *error)

但是当我尝试注销,然后使用其他用户登录时,我看到 Facebook 屏幕显示:“您已经授权 [应用程序名称]»。

即使我重新安装应用程序,此消息也不会消失。我尝试以不同的方式注销这些结果:

  1. 没有结果,出现«您已经授权»。

    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
    if ( [FBSDKAccessToken currentAccessToken] ){
    [login logOut];
    NSLog(@"The user is no longer associated with their Facebook account.");
    }
  2. 无法运行应用程序,因为 Facebook SDK v.4 中没有 session 。

    [PFFacebookUtils.session closeAndClearTokenInformation];
    [PFUser logOut];
  3. 没有结果,出现«您已经授权»。

    [PFFacebookUtils unlinkUserInBackground:[PFUser currentUser] 
    block:^(BOOL succeeded, NSError *error) {
    if (succeeded) {
    NSLog(@"The user is no longer associated with their Facebook account.");
    }
    else{
    NSLog(@"Failure logout FB: %@", error);
    }
    }];
    [PFUser logOut];

我还在日志中收到错误:

[错误]:用户名 xxxx 已被占用(代码:202,版本:1.9.1)。

我看到了这个post .它说,问题已在 Facebook SDK 版本 >= 4.4 中解决。但我使用 Parse SDK v.1.9.1 和 Facebook SDK v.4.7,并遇到同样的失败。我可以做错什么吗?

更新:谢谢jbehrens94's回复,这是正确的版本:

[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/permissions"
parameters:nil
HTTPMethod:@"DELETE"]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error)
NSLog(@"Revoking is successfull");
else
NSLog(@"Failure revoking: %@", error);
}];

工作起来就像一个魅力!

最佳答案

这是因为 Facebook 通过 OAuth 对用户进行身份验证的方式。当有人使用 Facebook 登录您的应用程序时,该应用程序会向 Facebook 发出请求以获取对 Facebook 数据的访问权限。Facebook 将该应用程序添加到具有特定访问权限的用户个人资料中,因此您能够重新登录 Facebook 并且看不到该屏幕的唯一方法是从您的 Facebook 设置中手动删除该应用程序。

您链接到的问题/帖子正确描述了这一点,我引用:

实际上,撤销登录(让人们完全取消对应用程序的授权,或撤销登录)和从他/她的 Facebook 帐户注销用户是有区别的

关于ios - 从 Facebook 注销 parse.com 用户失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33874231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com