Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios FaceBook Messenger SDK如何获取用户';姓名_Ios_Facebook - Fatal编程技术网

Ios FaceBook Messenger SDK如何获取用户';姓名

Ios FaceBook Messenger SDK如何获取用户';姓名,ios,facebook,Ios,Facebook,我正在开发messenger应用程序,主要是通过查看 唯一的问题是如何将用户信息传递给与您共享内容的人 从文档中可以看出,FBSDKMessengerURLHandlerReplyContext可能包含用户ID NSSet *userIds = context.userIDs 但是,如何使用userID获取用户信息?或者这是获取用户信息的正确方法 看来这项任务是可行的 它可以在第一个屏幕中告诉用户信息,而无需实际要求用户登录 关于如何实现这一点,您有什么想法或帮助吗?如果用户ID来自已经在您的

我正在开发messenger应用程序,主要是通过查看

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

从文档中可以看出,
FBSDKMessengerURLHandlerReplyContext
可能包含用户ID

NSSet *userIds = context.userIDs
但是,如何使用userID获取用户信息?或者这是获取用户信息的正确方法

看来这项任务是可行的

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


关于如何实现这一点,您有什么想法或帮助吗?

如果用户ID来自已经在您的应用程序中进行身份验证的用户,则可以使用graph API实现,就像他们在facebook文档中所说的:

用户ID可以与Facebook SDK和Graph API一起使用 ()查询姓名, 照片和其他数据。这将仅包含具有以下权限的用户的ID: 还通过他们的Facebook帐户登录到你的应用程序

下面是一些关于如何使用带有用户id的graph API的代码。您可以按如下方式进行调用:

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);           
     }
}];
此请求的结果如下所示:

 {
    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";
        };
    };
}
记住,有些字段可能是空的

你可能需要一个接一个地循环请求用户,如果有人知道如何同时请求一个补丁用户,请告诉我们如何

但是

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

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

您无法再获取用户名,因为
/me/username
不再可用

资料来源:


如果要检测返回的用户,请改用(应用范围)ID。

AFAIK,使用FBMessenger SDK无需身份验证。你可以继续分享内容。如果您看到上面的游戏链接,您将看到它以某种方式获取用户信息,不需要应用程序身份验证或登录。我添加了一些信息,您可以使用“taggeble friends”进行操作,我刚刚测试过,您可以获得名称和图片=)是的,但请小心使用“taggeble”朋友。它不应该以这种方式使用,Facebook可能会拒绝您的应用,因为您以后需要提交它们。获取以下错误“message=”必须使用活动访问令牌来查询当前用户的信息。“;”是否有任何方法可以在用户不登录应用的情况下获取此令牌?否,用户必须登录才能获取令牌。Tulleb关于“taggeble friends”使用风险的说法是对的。嘿,Piyus,我几乎犯了同样的错误,认为他问的是“用户名”,但他说:“用户名”(见空格?)他在标题中拼错了,应该是“用户名”。无论如何,谢谢你提供的信息,你是对的,“用户名”在facebook上永远消失了。谢谢德里克斯,我修正了标题