i have exact same situation topic pffacebookutils.logininbackgroundwithreadpermissions, swift 1.2, user returned nil
i user nil , error nil, author said code started working didn't post solution, ideas?
(i'm new, don't have reputation post in topic)
try this:
librarys in podfile:
pod 'fbsdkcorekit', '~> 4.2'
pod 'fbsdkloginkit', '~> 4.2'
pod 'fbsdksharekit', '~> 4.2'
appdelegate.swif class:
import uikit import fbsdkcorekit import fbsdksharekit import fbsdkloginkit @uiapplicationmain class appdelegate: uiresponder, uiapplicationdelegate{ func application(application: uiapplication, didfinishlaunchingwithoptions launchoptions: [nsobject: anyobject]?) -> bool { return fbsdkapplicationdelegate.sharedinstance().application(application, didfinishlaunchingwithoptions: launchoptions) } // added handle authorization code returned sign-in. func application(application: uiapplication, openurl url: nsurl, sourceapplication: string?, annotation: anyobject?) -> bool { return fbsdkapplicationdelegate.sharedinstance().application(application, openurl: url, sourceapplication: sourceapplication, annotation: annotation) } } mainviewcontroller class or other view controller:
import uikit import fbsdkcorekit import fbsdksharekit import fbsdkloginkit class mainviewcontroller: uiviewcontroller, fbsdkloginbuttondelegate{ override func viewdidload() { super.viewdidload() var fbloginbutton : fbsdkloginbutton = fbsdkloginbutton() fbloginbutton.readpermissions = ["public_profile", "email", "user_friends"] fbloginbutton.delegate = self self.view.addsubview(fbloginbutton) fbloginbutton.center = self.view.center } override func viewdidappear(animated: bool) { if (fbsdkaccesstoken.currentaccesstoken() != nil){ self.returnuserdata() } } func gototabcontroller(){ util.showviewcontroller(viewcontrollersource: self, viewcontrollertoshow: "tabbarcontroller") } ////////////////////////////////////// // facebook methods delegate /// ////////////////////////////////////// func loginbutton(loginbutton: fbsdkloginbutton!, didcompletewithresult result: fbsdkloginmanagerloginresult!, error: nserror!) { if ((error) != nil){ // process error }else if result.iscancelled { // handle cancellations }else { // if ask multiple permissions @ once, should check if specific permissions missing if result.grantedpermissions.contains("email"){ self.returnuserdata() } } } func loginbuttondidlogout(loginbutton: fbsdkloginbutton!) { //println("user logged out") } func returnuserdata(){ fbsdkgraphrequest(graphpath: "me", parameters: ["fields": "id, name, first_name, last_name, email"]).startwithcompletionhandler({ (connection, result, error) -> void in if (error == nil){ println(result.valueforkey("email")) println(result.valueforkey("name")) self.gototabcontroller() } }) } ////////////////////////////////////// // facebook methods delegate /// ////////////////////////////////////// } i hope helps you
Comments
Post a Comment