0

我正在尝试从 Facebook 获取 AccessToken 并将其与 alamofire 一起使用以登录应用程序。当我运行应用程序时,它会崩溃,因为 currentAccessToken 为 nil。谁能告诉我我做错了什么?

private func getFBUserData(){

    if((FBSDKAccessToken.currentAccessToken()) != nil){

        FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "name, email"]).startWithCompletionHandler({ (connection, result, error) -> Void in
            if (error == nil){
                //user and mail
                print(result["email"], result["name"])

                // var myToken = FB
                let currentToken = FBSDKAccessToken.currentAccessToken().hashValue
                print(currentToken)

                self.postRequests.loginUserFB(String(currentToken)) {(done) in
                    //completion handler
                    print("login \(done)")

                }
            }
        })
    }

}

4

1 回答 1

0

如果您使用 FB sdk 提供的默认 facebook 登录视图,请使用 FBSDKLoginButton 的委托方法并获取访问令牌为-

- (void)  loginButton:(FBSDKLoginButton *)loginButton
didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result
            error:(NSError *)error
{
NSLog(@"acessToken:%@ ,user Id : %@",[FBSDKAccessToken currentAccessToken],result.token.userID);
NSLog(@"error : %@",error);
}

对于自定义,您可以使用

var fbAccessToken = FBSession.activeSession().accessTokenData.accessToken
于 2015-10-29T13:24:15.377 回答