Facebook SDK v4 + Parse 1.7.5问题

时间:2015-08-02 23:50:16

标签: ios objective-c parse-platform facebook-ios-sdk

我已将我的SDK从Facebook和Parse更新为最新的SDK,其中包括PFFacebookUtils结构中的一些更改。

我想创建一个包含FB内容的PFUser。它在更新之前已经工作了很长时间,但现在当我登录时,我只收到Facebook请求产生的用户名和FBID。

这是"我"登录:

NSArray *permissionsArray = @[@"public_profile", @"email", @"user_education_history", @"user_work_history", @"user_birthday", @"user_friends", @"user_photos"];

[PFFacebookUtils logInInBackgroundWithReadPermissions:permissionsArray block:^(PFUser *user, NSError *error) { ... }];

这是我尝试获得结果的方式:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil];
        [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    NSLog(@"Result %@", result);
    ...
}];

日志只显示:

    2015-08-03 01:41:15.039 XXXXXX[10807:2640469] Result {
        id = 1015XXXXXXXXXXXX;
        name = "Simon XXXX";
    }

Facebook App ID在pList中设置。

1 个答案:

答案 0 :(得分:0)

最新的Facebook SDK使用Graph API v2.4,因此特殊me请求需要特定字段作为图形路径的查询参数。

因此,如果您需要访问姓氏和电子邮件,代码中的图形路径将如下所示:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me?fields=first_name,last_name,email" parameters:nil];
        [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    NSLog(@"Result %@", result);
    ...
}];

我还建议您查看并使用Graph API Explorer(请注意右上角的API版本下拉菜单)。