gpt4 book ai didi

ios - 无法识别已登录的 Facebook 用户

转载 作者:行者123 更新时间:2023-11-29 01:50:53 25 4
gpt4 key购买 nike

在我的 viewDidLoad 上我有这个

var currentUser = PFUser.currentUser()
if currentUser != nil || FBSDKAccessToken.currentAccessToken() != nil {
performSegueWithIdentifier("principal1", sender: self)

println("parse user or facebook is loged in...")
} else {

// Show the signup or login screen
}

当我使用 parse 登录时,它工作正常,但当我使用 facebook 登录时,它工作正常

我的登录自定义按钮代码是(并且在任何覆盖功能之外):

@IBAction func fbBtn(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, email"]).startWithCompletionHandler({ (connection, result, error) -> Void in
if (error == nil){
println(result)
}
})
}
performSegueWithIdentifier("principal1", sender: self)

}

它接缝没有保存 facebook 的访问 token ,所以顶部的 segue 不起作用

最佳答案

在你的 appdelegate 中:

import UIKit

import FBSDKCoreKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
func applicationWillResignActive(application: UIApplication) {
FBSDKAppEvents.activateApp()
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}
}

在你的 View Controller 中:

import UIKit
import FBSDKLoginKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

@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) // Do your stuff here
}
})
}
}
}

在您的 plist.info 文件中添加属性。

enter image description here

添加 URL 类型、FacebookAppID 和 FacebookDisplayName 属性

有关更多信息,您可以执行 https://developers.facebook.com/docs/ios/getting-started 的步骤

关于ios - 无法识别已登录的 Facebook 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31435713/

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