【问题标题】:How to get the user details using mobile hub User-sign feature?如何使用移动集线器用户签名功能获取用户详细信息?
【发布时间】:2018-05-23 13:02:39
【问题描述】:
我正在使用 AWS Mobile Hub 服务进行用户登录。我遵循移动集线器开发人员指南,并成功使用 Facebook 登录。登录后如何获取个人资料图片或姓名或出生日期等用户详细信息。移动集线器的开发人员指南没有解释这一点。是否可以获取详细信息还是仅对用户进行身份验证?
【问题讨论】:
标签:
facebook
aws-cognito
aws-mobilehub
amazon-cognito-facebook
amazon-mobile-hub
【解决方案1】:
目前帮助您执行 Facebook SignIn 的 AWS Auth SDK 不支持检索用户个人资料信息,可以直接使用 Facebook iOS SDK 获取包括用户名、imageURL 等信息。
let imageGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "picture.type(large)"])
let imageConnection = FBSDKGraphRequestConnection()
imageConnection.add(imageGraphRequest, completionHandler: { (connection, result, error) in
guard let imageResult = result as? NSDictionary else { return}
if let imageURL = URL(string:(((imageResult.value(forKey: "picture") as AnyObject).value(forKey: "data") as AnyObject).value(forKey: "url") as? String)!) {
self.imageURL = imageURL
}
})
imageConnection.start()
let userGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, email"])
let userConnection = FBSDKGraphRequestConnection()
userConnection.add(userGraphRequest, completionHandler: { (connection, result, error) in
guard let userResult = result as? NSDictionary else { return }
if let userName = userResult.value(forKey: "name") as? String {
self.userName = userName
}
})
userConnection.start()