获取用户的朋友用户ID,以获取应用排行榜得分

时间:2019-04-19 07:39:44

标签: ios swift facebook-ios-sdk

因此,我正在创建一个排行榜,在该排行榜上,用户可以查看之前使用过该应用程序的全局分数,区域分数和朋友分数。当用户使用Facebook登录时,所有这些分数都将与用户的唯一ID一起提取并写入Firebase的Fire Store数据库中。

我需要从Facebook获取用户朋友及其用户ID的列表,以便我可以使用Facebook ID在消防商店数据库中搜索其分数。但是当获取好友列表时,我不知道如何从下面的结果中获取ID:

func getFriendsFromFB() {

    let params = ["fields": "id, first_name, last_name, name, email, picture"]

    let graphRequest = FBSDKGraphRequest(graphPath: "/me/friends", parameters: params)
    let connection = FBSDKGraphRequestConnection()
    connection.add(graphRequest, completionHandler: { (connection, result, error) in
        if error == nil {
            if let userData = result as? [String:Any] {
                print(userData)
            }
        } else {
            print("Error Getting Friends \(error)");
        }

    })

    connection.start()

}

有人可以在上面的代码中建议我如何从结果中获取用户ID吗?

在要求用户登录时,我也确实要求user_friends权限。

2 个答案:

答案 0 :(得分:0)

您要将结果强制转换为Dictionary,这意味着结果将存储为键值。您可以使用dictionary["keyHere"]来检索值。我不确定FB图结果的结构如何,但是您将必须执行以下操作:

// Don't continue if the result is not a dictionary
guard let userData = result as? [String: Any] else {
    return
}

// Now, you can get values from the dictionary

// Let's say the userID is a String
if let userID = userData["id"] as? String {
    print(userID)
}

答案 1 :(得分:0)

根据Facebook DocApp Review需要{{3}}权限,然后才能从facebook api请求数据。