因此,我正在创建一个排行榜,在该排行榜上,用户可以查看之前使用过该应用程序的全局分数,区域分数和朋友分数。当用户使用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权限。
答案 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 Doc,App Review需要{{3}}权限,然后才能从facebook api请求数据。