gpt4 book ai didi

ios - 如何获取 Facebook 用户资料(swift)

转载 作者:行者123 更新时间:2023-11-28 08:00:21 25 4
gpt4 key购买 nike

我一直致力于通过 swift 获取用户个人资料信息。没有错误,但我想检查这段代码是否正常工作,因为下面的错误,我无法在模拟器中检查。

错误:由于模拟器错误,回退到在 NSUserDefaults 中存储访问 token

据我所知,这个错误不会发生在真实设备上。

class FetchUserProfileController: UIViewController {


@IBOutlet weak var userFullName: UILabel!
@IBOutlet weak var userProfileImage: UIImageView!


override func viewDidLoad() {
super.viewDidLoad()

userFullName.text = ""

if let _ = FBSDKAccessToken.current()
{
fetchUserProfile()
}

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()

}


func fetchUserProfile()
{
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"id, email, name, picture.width(200).height(200)"])

graphRequest.start(completionHandler: { (connection, result, error) -> Void in

if ((error) != nil)
{
print("Error took place: \(error)")
}
else
{
print("Print entire fetched result: \(result)")

let fbData:[String:AnyObject] = result as! [String : AnyObject]

let userName : NSString? = fbData["name"]! as? NSString
let facebookID : NSString? = fbData["id"]! as? NSString

if let imageURL = ((fbData["picture"] as? [String: Any])?["data"] as? [String: Any])?["url"] as? String {
//Download image from imageURL
}

}
})
}

最佳答案

您的代码应该可以在普通设备上运行。 Facebook 登录 SDK 阻止 iOS 模拟器缓存访问 token 。如果您没有真实设备并且必须在模拟器上检查登录,请执行以下操作:

1) 在您的项目中搜索FBSDKKeychainStore.m:

2) 转到第 94 行并在 [[NSUserDefaults standardUserDefaults] setObject:value forKey:key 之前添加 key = [NSString stringWithFormat:@"%@_fix", key]; ];

3) 转到第 135 行并添加相同的 key = [NSString stringWithFormat:@"%@_fix", key]; 就在 [[NSUserDefaults standardUserDefaults] setObject:value 之前forKey:key];

它仍会打印您提到的错误行,但您将能够使用模拟器登录 facebook

关于ios - 如何获取 Facebook 用户资料(swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46822440/

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