AWS MobileHub - Получение данных профиля пользователя после входа в систему через GOOGLE и FB - PullRequest
0 голосов
/ 03 сентября 2018

Я использую AWS Mobile Hub для iOS и хотел получить информацию о пользователе с помощью пулов идентификации AWS Cognito.

Например, после входа в систему через Google и Facebook, наряду с секретными ключами, которые дают Google и FB, мне также необходимы данные профиля пользователя, такие как его Email-ID, Profile_picture из них.

Будет хорошо, если кто-то сможет опубликовать SWIFT-код для того же.

1 Ответ

0 голосов
/ 14 сентября 2018

В следующих фрагментах кода используются Facebook и Google SDK для iOS соответственно.

Для Facebook:

        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()

Для Google:

import GoogleSignIn


let googleUser = GIDSignIn.sharedInstance().currentUser
self.userName = googleUser?.profile.name
self.imageURL = googleUser?.profile.imageURL(withDimension: GoogleSignInProviderProfileImageDimension)
...