我正在尝试确定我的Facebook朋友当前正在使用我的应用。据我所知,一般的智慧是使用图形api,并在获取朋友列表时发送'installed'参数。这对我来说似乎没有用,我想知道我哪里出错了。这是我的代码:
首先,权限生效:
_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";
};
};
},
正如您所看到的,权限几乎可以让我获得所有内容。但是没有迹象表明“安装”参数甚至被注意到了。所以这是我的问题,其中任何一个的答案都可以解决我的问题:
答案 0 :(得分:1)
碰巧,李明的评估已经死了。仅当朋友安装了应用程序时才返回该参数。每个例子:
},
{
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默默地修复了某些东西,也许我的测试用户遇到了一些问题,也许我只是在隧道视野中看到我面前的修复。谁知道。但是如果您按照上面的方法操作,应该获得此结果。祝你好运!