gpt4 book ai didi

ios - Swift 无法获取 Facebook 用户名

转载 作者:行者123 更新时间:2023-11-28 07:01:59 24 4
gpt4 key购买 nike

我在 swift 中使用最新的 Facebook SDK。我的问题是当我尝试将我的 Facebook 名称传递给变量时。有我的代码:

func returnUserData()
{
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil)
graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in

if ((error) != nil)
{
// Process error
println("Error: \(error)")
}
else
{
// This variable is declared under my class declaration
self.userFacebook = result.valueForKey("name") as! String
println(self.userFacebook) //it's works, my Facebook name appear
}
})
}

但是,当我尝试在此函数 (returnUserData) 之外使用变量“userFacebook”时,结果为“nil”。我不明白为什么我的变量只在函数中而不是在我的类中设置。

谢谢

最佳答案

您传递参数请求获取什么数据,例如获取名称。

像这样请求参数

["fields": "id, name, first_name, last_name, picture.type(large), email"]

试试这段代码:

@IBAction func btnFBLoginPressed(sender: AnyObject) {
var fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager .logInWithReadPermissions(["email"], handler: { (result, error) -> Void in
if (error == nil){
var fbloginresult : FBSDKLoginManagerLoginResult = result
if(fbloginresult.grantedPermissions.contains("email"))
{
self.getFBUserData()
fbLoginManager.logOut()
}
}
})
}

func getFBUserData(){
if((FBSDKAccessToken.currentAccessToken()) != nil){
FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in
if (error == nil){
println(result)
println(result["name"])
}
})
}
}

关于ios - Swift 无法获取 Facebook 用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31827877/

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