FaceBook Messenger SDK如何获取用户名

N0m*_*0mi 7 facebook ios

我正在使用Messenger应用程序,主要是通过查看这里的文档

唯一的问题是如何将用户信息传递给您与之共享内容的人?

从文档似乎FBSDKMessengerURLHandlerReplyContext可能包含userID

NSSet *userIds = context.userIDs
Run Code Online (Sandbox Code Playgroud)

但是,我如何使用userID获取用户信息?或者甚至是获取用户信息的正确方法?

看起来这个任务是可行的.这个游戏就是这样

它可以在第一个屏幕中告诉用户信息,而无需实际要求用户登录.

关于如何实现它的任何想法或帮助?

Adr*_*oni 5

如果用户ID来自已在您的应用中进行身份验证的用户,则可以使用图形API实现,就像他们在Facebook文档中所述:

用户ID可与Facebook SDK和Graph API(https://developers.facebook.com/docs/graph-api)一起使用,以查询姓名,照片和其他数据.这将仅包含已通过其Facebook帐户登录到您的应用程序的用户的ID.

这里有一些关于如何使用图形API和用户ID的代码.您可以按以下方式拨打电话:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                                      initWithGraphPath:[NSString stringWithFormat:@"/%@", {userID-goes-here}]
                                      parameters:@{@"fields":@"name,id,picture,gender,birthday,email"}
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                              id result,
                                              NSError *error) {
     if (!error){
          NSLog(@"result: %@",result);           
     }
}];
Run Code Online (Sandbox Code Playgroud)

此请求的结果如下所示:

 {
    birthday = "06/24/1981";
    email = "XXXXXX@hotmail.com";
    gender = male;
    id = 67XXXXX39;
    name = "Adriano Spadoni";
    picture = {
        data = {
            "is_silhouette" = 0;
             url = "https://fbcdn-prof... ...jpg";
        };
    };
}
Run Code Online (Sandbox Code Playgroud)

请记住,某些字段可能为空.

你可能需要做一个用户请求用户的循环我害怕,如果有人知道如何同时询问一个用户的补丁,请告诉我们如何.

如果您想从未安装应用程序的用户那里获取信息,您需要:

 FBSDKGraphRequest(graphPath: "me/taggable_friends", parameters: ["fields":"installed,id,name,picture.width(1000)"]).startWithCompletionHandler({ (connection, result, err) -> Void in
                    if err == nil {
                        print(result)
                    }
                })
Run Code Online (Sandbox Code Playgroud)