ios - Swift: Facebook SDK, checking missing permissions after successful login -
i trying check missing permissions once user has logged app.
func checkuserpermission() { let loginresult: fbsdkloginmanagerloginresult = fbsdkloginmanagerloginresult() var missingpermissions: [string] = [] if !loginresult.grantedpermissions.containsobject("public_profile") { missingpermissions.append("public_profile") } if !loginresult.grantedpermissions.containsobject("email") { missingpermissions.append("email") } if !loginresult.grantedpermissions.containsobject("user_friends") { missingpermissions.append("user_friends") } if !loginresult.grantedpermissions.containsobject("user_likes") { missingpermissions.append("user_likes") } println(missingpermissions) }
this function ran when app state changes make sure have permissions need make app functional.
i receiving error "fatal error: unexpectedly found nil while unwrapping optional value" cant seem understand why. if "fbsdkaccesstoken.currentaccesstoken()" set in theory permissions should set well.
found issue, assumed let loginresult: fbsdkloginmanagerloginresult = fbsdkloginmanagerloginresult()
store permissions granted active permissions of current logged in user have rely on fbsdkaccesstoken
. replacing loginresult
let loginresult: fbsdkaccesstoken = fbsdkaccesstoken.currentaccesstoken()
should fix issue. grantedpermissions
changed permissions
. here working function:
func checkuserpermission() { let loginresult: fbsdkaccesstoken = fbsdkaccesstoken.currentaccesstoken() var missingpermissions: [string] = [] if !loginresult.permissions.containsobject("public_profile") { missingpermissions.append("public_profile") } if !loginresult.permissions.containsobject("email") { missingpermissions.append("email") } if !loginresult.permissions.containsobject("user_friends") { missingpermissions.append("user_friends") } if !loginresult.permissions.containsobject("user_likes") { missingpermissions.append("user_likes") } println(missingpermissions) //let login: fbsdkloginmanager = fbsdkloginmanager() //login.loginwithreadpermissions([""], handler: <#fbsdkloginmanagerrequesttokenhandler!##(fbsdkloginmanagerloginresult!, nserror!) -> void#>) //login.loginw }
Comments
Post a Comment