【发布时间】:2017-08-21 23:23:47
【问题描述】:
我正在尝试为 Facebook 上的登录用户创建 API,但出现此错误:
线程 1:EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0)
在这一行:
self.accessToken = jsonData["access_token"].string!
控制台显示:
我的代码:
致命错误:在展开可选值时意外发现 nil (lldb)
func login(userType: String, completionHandler: @escaping (NSError?) -> Void) {
let path = "api/social/convert-token/"
let url = baseURL!.appendingPathComponent(path)
let params: [String: Any] = [
"grant_type": "convert_token",
"client_id": CLIENT_ID,
"client_secret": CLIENT_SECRET,
"backend": "facebook",
"token": FBSDKAccessToken.current().tokenString,
"user_type": userType
]
Alamofire.request(url!, method: .post, parameters: params, encoding: URLEncoding(), headers: nil).responseJSON { (response) in
switch response.result {
case .success(let value):
let jsonData = JSON(value)
self.accessToken = jsonData["access_token"].string!
self.refreshToken = jsonData["refresh_token"].string!
self.expired = Date().addingTimeInterval(TimeInterval(jsonData["expires_in"].int!))
completionHandler(nil)
break
case .failure(let error):
completionHandler(error as NSError?)
break
}
}
}
【问题讨论】:
-
这意味着
jsonData["access_token"]不是String或者甚至不存在。print(jsonData)了解,回复有什么问题
标签: swift xcode facebook fbsdk