我正在尝试确定我的 Facebook 好友中哪些人当前正在使用我的应用程序。据我所知,一般的做法是使用图形 api,并在获取好友列表时发送“已安装”参数。这似乎对我不起作用,我想知道我哪里出了问题。这是我的代码:
首先,生效的权限:
_facebookPermissions = @[@"publish_stream", @"read_stream", @"friends_photos", @"user_photos"];
现在 SLRequest 及其设置:
NSString *username = [[NSUserDefaults standardUserDefaults] objectForKey:@"fbUserID"];
NSString *urlString = [NSString stringWithFormat:@"https://graph.facebook.com/%@/friends", username];
NSURL *friendsList = [NSURL URLWithString:urlString];
NSDictionary *friendsListParameters = @{@"fields": @"id,name,picture,installed"};
SLRequest *getFriends = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodGET URL:friendsList parameters:friendsListParameters];
现在是示例结果:
{
id = 10000123456911;
name = "Don Dobrian";
picture = {
data = {
"is_silhouette" = 0;
url = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash3/41664_100001237218111_2269_q.jpg";
};
};
},
正如你所看到的,权限将让我获得几乎所有的东西。但根本没有迹象表明“已安装”参数被注意到。这是我的问题,其中任何一个的答案都可以解决我的问题:
- 这就是你的做法吗?您使用什么权限来获取“已安装”状态?
- 是否有更好的方法使用 iOS 社交框架获取此信息?
最佳答案
事实上,李明的评估完全正确。仅当好友安装了该应用时才会返回该参数。每个示例:
},
{
id = 12645478730;
installed = 1;
name = "Edwin Robertson";
picture = {
data = {
"is_silhouette" = 0;
url = "https://fbcdn-profile-a.akamaihd.net/...";
};
};
},
{
id = 12645478730;
name = "Greg Walker";
picture = {
data = {
"is_silhouette" = 0;
url = "https://fbcdn-profile-a.akamaihd.net...";
};
};
},
奇怪的是,几个月前我上次研究它时,我确信它没有按预期工作。也许 FB 默默地修复了某些东西,也许我的测试用户遇到了一些问题,也许我的视野太狭隘,看不到眼前的修复。谁知道。但如果你按照我上面的方法,你应该得到这个结果。祝你好运!
关于iphone - Facebook 安装的参数不返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16455018/