gpt4 book ai didi

swift - 如何从 Facebook 获取用户电子邮件 ID

转载 作者:行者123 更新时间:2023-11-30 11:14:12 24 4
gpt4 key购买 nike

为什么我无法获取 Facebook 的用户邮件 ID?我在下面附上了我的代码。我对使用API​​登录和注册有疑问

func getFacebookUserInfo() {
if(FBSDKAccessToken.current() != nil)
{
//print permissions, such as public_profile
print(FBSDKAccessToken.current().permissions)
let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields" : "id, first_name, last_name, email"])
let connection = FBSDKGraphRequestConnection()

connection.add(graphRequest, completionHandler: { (connection, result, error) -> Void in

let data = result as! [String : AnyObject]

self.firstnameLabel.text = data["first_name"] as? String
self.lastnameLabel.text = data["last_name"] as? String
guard let result = result as? NSDictionary else{ return }
let email = result["email"] as? String
self.googleemail = email!
let FBid = data["id"] as? String
let url = NSURL(string: "https://graph.facebook.com/\(FBid)/picture?type=large&return_ssl_resources=1")
self.imageView.image = UIImage(data: NSData(contentsOf: url! as URL)! as Data)
self.validateUserData()
})
connection.start()
}
}

enter image description here

最佳答案

facebook button click

 @IBAction func btnFacebookClick(_ sender: Any)
{
// GeneralClass.startProgress()
loginManager.logIn(readPermissions: [ ReadPermission.publicProfile,ReadPermission.email], viewController: self) { (loginResult) in
switch loginResult {
case .failed(let error):
self.loginManager.logOut()
print(error)
case .cancelled:

self.loginManager.logOut()
print("User cancelled login.")

case .success(let grantedPermissions, let declinedPermissions, let accessToken):

print(grantedPermissions)
print(declinedPermissions)
print("Logged in!")


self.getFBUserData(accessToken: accessToken)
}

}
}

get data

func getFBUserData(accessToken: AccessToken)
{

let request = GraphRequest(graphPath: "me",
parameters: ["fields" : "first_name,middle_name,last_name,name,link,email,id,picture" as AnyObject],
accessToken:accessToken,
httpMethod: .GET)
request.start { (httpResponse, result) in

switch result {
case .success(let response):

let responseDictionary = response.dictionaryValue
print("USER DATA:---\(responseDictionary! as NSDictionary))")
let dicData = responseDictionary! as NSDictionary

if ((dicData["email"]) != nil) {
let email = dicData["email"] as! String

let user_firstName = dicData["first_name"] as! String

let imageUrl = (((dicData["picture"] as! NSDictionary)[KEY_DATA] as! NSDictionary)["url"] as! String)




}


case .failed(let error):
self.loginManager.logOut()
print(error)
}
}
}

关于swift - 如何从 Facebook 获取用户电子邮件 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51892915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com