0

我正在尝试确定我的 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";
                };
            };
        },

如您所见,权限几乎可以让我获得一切。但是根本没有迹象表明甚至注意到了“已安装”参数。所以这是我的问题,任何一个问题的答案都可以解决我的问题:

  1. 是这样做的吗?您使用什么权限来获取“已安装”状态?
  2. 有没有更好的方法来使用 iOS 社交框架获取这些信息?
4

1 回答 1

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 默默地修复了一些东西,也许我的测试用户遇到了一些问题,也许我只是太狭隘了,看不到我面前的修复。谁知道。但是如果你按照我上面的方法,你应该得到这个结果。祝你好运!

于 2013-08-27T22:17:01.727 回答