注意:请不要关闭重复,我在Stackoverflow上经历了几乎所有现有的线程,但我的问题仍未解决。
这是我使用最新Facebook SDK的 Swift 3 功能:
let req = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"email,name"], tokenString: token?.tokenString, version: nil, httpMethod: "GET")
_ = req?.start(completionHandler: { (connection, result, error : Error?) -> Void in
if(error == nil) {
print("result \(result)")
} else {
print("error \(error!)")
}
})
结果:
result Optional({
id = 102080884567XXXXX;
name = "David Seek";
})
电子邮件权限已批准:
该应用程序也处于实时模式:
我查看了reference guide,但我无法找到错误。
我的问题是,我将facebookID保存为电子邮件地址到我的后端,我试图找出原因...因此我尝试了提供的代码在顶部,但我没有收到电子邮件。
let result = FBSDKApplicationDelegate.sharedInstance().application(application,
open: url,
sourceApplication: sourceApplication,
annotation: annotation)
if result {
let token = FBSDKAccessToken.current()
let fieldsMapping = [
"id" : "facebookId",
"name" : "name",
"birthday": "birthday",
"first_name": "fb_first_name",
"last_name" : "fb_last_name",
"gender": "gender",
"email": "email"
]
backendless?.userService.login(withFacebookSDK: token, fieldsMapping: fieldsMapping, response: { (user: BackendlessUser?) in
}, error: { (fault: Fault?) -> Void in
print("Server reported an error: \(fault)")
})
}
我收到了所有信息,但电子邮件......
我错过了什么?非常感谢帮助。
答案 0 :(得分:2)
授予电子邮件权限:
这不是截图显示的内容。它表明它已被批准,这意味着您的应用可以向用户询问它。但它仍然需要。
确保已成功发生 - 通过调试访问令牌,或通过API调用/me/permissions
您需要在登录时询问用户是否允许。