amazon-web-services - AWS MobileHub - 通过 GOOGLE 和 FB 登录后获取用户个人资料详细信息
问题描述
我正在使用适用于 iOS 的 AWS Mobile Hub,并希望通过使用 AWS Cognito 身份池获取用户详细信息。
例如,通过 Google 和 Facebook 登录后,连同 Google 和 FB 提供的密钥,我还需要用户个人资料的详细信息,例如他的电子邮件 ID、个人资料图片。
如果有人可以发布相同的 SWIFT 代码,那就太好了。
解决方案
以下代码片段分别使用 Facebook 和 Google SDK for iOS。
对于脸书:
import FBSDKCoreKit
import FBSDKLoginKit
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()
对于谷歌:
import GoogleSignIn
let googleUser = GIDSignIn.sharedInstance().currentUser
self.userName = googleUser?.profile.name
self.imageURL = googleUser?.profile.imageURL(withDimension: GoogleSignInProviderProfileImageDimension)
推荐阅读
- python - 如何在 SymPy 中收集分数?
- java - 如何在 Java 中使用 MDC 日志记录
- azure-blob-storage - 将 *IPFS* 安装到 blob 存储
- r - 使用两个数据框的行作为函数的输入,将输出保存为新的数据框。
- r - 在 R 中定义类别表函数
- html - 如何从 localhost 中的默认索引 html 文件访问关于我们的 html 文件?
- tvos - 使用 UITapGestureRecognizer 检测 tvOS 中的点击
- highcharts - Highcharts png 导出饼图
- c++ - 为什么 std::istream_iterator 构造函数返回指针
- c# - 设备未订阅 oOneSignal 引发无推送令牌错误