ios - FBSDKGraphRequest 登录后不重定向到应用程序

标签 ios facebook swift

我正在使用 FBSDKGraphRequest 在我的 iOS 应用程序中实现 Facebook 登录。

但是在登录完成并且用户确认后,我没有被重定向到我的应用。

这是我的代码:

FBSDKGraphRequest(graphPath: "me", parameters:   nil).startWithCompletionHandler({
        (connection, result, error: NSError!) -> Void in
        if error == nil {
            println("\(result)")
        } else {
            println("\(error)")
            self.performSegueWithIdentifier("home", sender: self)
        }
    })

最佳答案

在你的 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 {

    var dict : NSDictionary!

    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.containsObject("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){
                    self.dict = result as NSDictionary
                    println(result)
                    println(self.dict)
                    NSLog(self.dict.objectForKey("picture")?.objectForKey("data")?.objectForKey("url") as String)
                }
            })
        }
    }
}

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

enter image description here

添加 URL 类型、FacebookAppID 和 FacebookDisplayName 属性

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

关于ios - FBSDKGraphRequest 登录后不重定向到应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30705764/

相关文章:

php - 如何过滤指定时间段内的 Facebook 潜在客户

swift - 如何快速将几张图片作为一张图片保存到照片库?

ios - 关于在线HTML5视频系统离线模式的解决方案

iphone - 如何调试或查看USB被占用的iOS设备的NSLog输出?

ios - 使 UISlider 高度变大?

ios - 自动调整大小时 UITextField 字体粗细发生变化

swift - 这是如何在 swift 4 中实现的?

ios - 'undefined' has no propType for native prop error react native

java - 如何获取超过 25 条帖子消息

facebook - FB.login() 后错误 "Use SSL (https) when passing an access_token"