gpt4 book ai didi

ios - Facebook 权限 iOS

转载 作者:行者123 更新时间:2023-11-30 13:08:23 28 4
gpt4 key购买 nike

所以我摆弄了 Facebook 的 iOS SDK,并利用它我成功地允许用户登录到我的应用程序。我在 Storyboard上有一个 UIView 设置,它是 FBSDKLoginButton 类,根据 this ,它只是 UIButton 的子类。然后我创建了一个 @IBOutlet 弱变量 facebookLogInBtn: FBSDKLoginButton!。然后我继续设置我的权限

override func viewDidLoad()
{
super.viewDidLoad()

facebookLogInBtn.delegate = self
facebookLogInBtn.readPermissions = ["public_profile", "email", "user_friends"]
}

这工作得很好,完成了我想要的任务和我需要的任何额外权限,我只需将它们附加到 facebookLoginBtn.readPermissions 数组即可。但经过一番谷歌搜索后,我发现了一堆使用 FBSDKGraphRequestFBSDKLoginManager 的网站。以这个blog为例。现在我的问题是:

  1. 我的方式被认为是可以接受的还是有问题的?它有效,但我只是想确保我遵循标准程序。
  2. 我的方式如何与通过 Graph API 获取数据相关联?因为我明确没有声明任何 FBSDKRequest 或 FBSDKLoginManager 对象。我只是添加了我的按钮,然后实现了它的委托(delegate),瞧!我正在获取访问权限。无需解析任何 JSON 数据或任何内容。
  3. 我还注意到,这些网站中的大多数实际上从未将其任何 UIView 设为 FBSDKLoginButton 类。这是否就是他们必须“手动”处理一切的原因?

任何帮助将不胜感激。干杯!

最佳答案

我的做法是正确的,但我无法用它检索任何用户数据。通过 FBSDKLoginManager 对象,Facebook 为我处理了所有事情,它只会返回用户的最终响应(同意与否),但没有我通过 readPermissions 数组请求的任何实际数据。用于任何数据检索;甚至可能写道,我必须为其创建一个 FBSDKGraphRequest 对象。总之,我最终让 Facebook 使用 FBSDKLoginManager 处理登录和注销,成功后,我使用 FBSDKGraphRequest 检索用户数据,如下所示

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!)
{
if error != nil
{
print("Facebook Log In Failed")
print(error.localizedDescription)
}

let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields" : "\(FacebookPermission.NAME), \(FacebookPermission.FIRST_NAME), \(FacebookPermission.LAST_NAME), \(FacebookPermission.EMAIL)"])

graphRequest.startWithCompletionHandler { (connection: FBSDKGraphRequestConnection!, result:AnyObject!, error: NSError!) in

if error == nil
{
print("Data retrieval was successful")
}
else
{
print("Facebook Graph Request Error")
print(error)
}
}
}

关于ios - Facebook 权限 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39068184/

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