无法在 Swift 中从 Facebook 获取电子邮件
Posted
技术标签:
【中文标题】无法在 Swift 中从 Facebook 获取电子邮件【英文标题】:Can not fetch email from Facebook in Swift 【发布时间】:2015-11-04 19:01:45 【问题描述】:编辑:这个问题的问题有点傻。和answer 一样,问题是我没有给出我想要的参数。
我再也受不了了 :) 可能是什么问题?
func returnUserData()
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphpath: "me", parameters: nil)
graphRequest.startWithCompletionHandler( (connection, result, error) -> Void in
if ((error) != nil)
// Process error
print("Error: \(error)")
else
print("fetched user: \(result)")
let userName : NSString = result.valueForKey("name") as! NSString
print("User Name is: \(userName)")
let userEmail : NSString = result.valueForKey("email") as! NSString
print("User Email is: \(userEmail)")
)
我这样调用函数:
func loginButton(loginButton: FBSDKLoginButton!,
didCompleteWithResult result: FBSDKLoginManagerLoginResult!,
error: NSError!)
print("User Logged In")
if ((error) != nil)
// Process error
else if result.isCancelled
// Handle cancellations
else
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if result.grantedPermissions.contains("email")
// Do work
returnUserData()
我得到错误:
我的问题是关于致命错误。但是,我正在等待输出的第 2 行和第 3 行的 cmets。因为,我每次都得到这个输出,但应用程序运行正常。
【问题讨论】:
您的 fields 参数为零,正如您的错误消息所说“从 Graph API v 2.4 开始,我的 GET 请求应该包含一个明确的 fields 参数” 【参考方案1】:您必须为请求指定参数。
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "first_name, last_name, email"])
【讨论】:
以上是关于无法在 Swift 中从 Facebook 获取电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
如何在统一引擎中从 Facebook API 获取用户名和用户个人资料图片?
如何在 Swift 4 中从 WKWebView 获取 cookie 值?
在 swift 4.0 中从 firebase 快照字典中获取值时打开一个可选的 nil