iOS Facebook SDK v2.0 - 读取另一个用户的公共(public)数据

标签 ios facebook-graph-api facebook-graph-api-v2.0

我一直在使用适用于 iOS 的 Facebook SDK v1.0,没有任何问题。我试图简单地获取另一个 facebook 用户的名字和姓氏,而不是当前拥有该 session 的用户,但是对于新版本,这个调用非常失败。

我使用 FBLoginView 登录,我是这样设置的:

facebookLoginView.loginBehavior = FBSessionLoginBehaviorUseSystemAccountIfPresent;
facebookLoginView.readPermissions = @[@"public_profile", @"email", @"user_likes"];
facebookLoginView.delegate = self;

然后,当我获得权限时,我有一个事件 session (我检查了访问 token ,它对我正在使用的应用程序有效 - 我用 graph api explorer 检查了它),我正在这样做:

[FBRequestConnection startWithGraphPath:@"https://graph.facebook.com/100005627796553" parameters:nil HTTPMethod:@"GET" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    NSLog(@"%@", result);
}];

下面的控制台日志简单地说,而不是包含用户配置文件数据(公共(public)数据)的 json 字符串:

{id = "https://graph.facebook.com/100005627796553";}

非常感谢任何想法。

最佳答案

据我所知,您遇到了 2.0 API 对与未运行您的应用并未授予其任何权限的用户进行交互的限制。

这与 1.0 截然不同,在 1.0 中,您应用的用户可以允许您的应用访问他们 friend 的数据。在新 API 中, friend 必须使用过您的应用并授予您的应用权限才能查看他们的数据。

Facebook 实现这一点的方法之一是用户 ID 号在 2.0 中是特定于应用程序的。即,如果您碰巧知道某人的 Facebook 用户 ID,也许是从基于 1.0 的应用程序中获得的,则您的应用程序无法使用它。没有办法再请求用户 friend 的完整列表,虽然有一些 API 调用可以做一些事情,比如用 friend 标记照片或邀请没有使用你的应用程序的 friend ——但这仍然不能让你访问他们的个人资料。这些 API 为您提供的 ID 不能以这种方式使用。

此处描述了更改:Upgrading to 2.0 User IDs

如果这些对您来说似乎非常严格,那么您并不孤单。感谢那里的垃圾邮件发送者。

关于iOS Facebook SDK v2.0 - 读取另一个用户的公共(public)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518532/

相关文章:

ios - 为什么有时不调用完成处理程序?

ios - 从其他应用返回应用

facebook - 通过 API 删除 Facebook 应用程序

Facebook 图形 API : Publishing likes through the API is no longer available

csv - 如何获取所有用户好友的列表?

Facebook Graph API v2.0+ -/me/friends 返回空,或者只返回也使用我的应用程序的 friend

iphone - 如何解决线程错误 EXC_BAD_ACCESS?

ios - 将 PFObject 设置为 UILabel

facebook - 收到警报 此评论尚未发布到 Facebook。发表评论

使用 API v2.0 的 Facebook 公共(public)帖子搜索