ios - Facebook SDK 4.0: Asking publish_actions -
i using fbsdkloginbutton logging in through facebook in app. define readpermissions as;
nsarray *permissions = [nsarray arraywithobjects:@"public_profile", @"email",nil]; self.loginfbbtn.readpermissions = permissions;
the above goes well. if need ask permissions post timeline , want have access "publish_actions" permissions, there way ask these without provoking fbsdkloginmanager, because way given in facebook docs:
if ([[fbsdkaccesstoken currentaccesstoken] hasgranted:@"publish_actions"]) { // todo: publish content. } else { fbsdkloginmanager *loginmanager = [[fbsdkloginmanager alloc] init]; [loginmanager loginwithpublishpermissions:@[@"publish_actions"] handler:^(fbsdkloginmanagerloginresult *result, nserror *error) { //todo: process error or result. }]; }
apparently way can invoke "publish_actions" app. want use without fbsdkloginmanager. please help, need rolling.
so update:
by of wizkid , mingli ended implementing via fbsdkloginmanager , following code segments facebook login via custom button , @selector(facebooklogin)
, , sharing permissions invoked when sharing required via method getsharingpermissions
:
-(void) facebooklogin { @try { self.loginmanager = [[fbsdkloginmanager alloc] init]; [self.loginmanager setloginbehavior:fbsdkloginbehaviorweb]; [self.loginmanager loginwithreadpermissions:@[@"public_profile",@"email"] handler:^(fbsdkloginmanagerloginresult *result,nserror *error) { if([fbsdkaccesstoken currentaccesstoken]) { [[[fbsdkgraphrequest alloc] initwithgraphpath:@"me" parameters:nil] startwithcompletionhandler:^(fbsdkgraphrequestconnection *connection, id result, nserror *error) { if (!error) { nslog(@"fetched user:%@", result); nsdictionary *userdict = (nsdictionary*)result; } }]; }}]; } } @catch (nsexception *exception) { nslog(@"exception %@", exception); }
get sharing permissions:
-(void)getsharepermissions { if (![[fbsdkaccesstoken currentaccesstoken] hasgranted:@"publish_actions"]) { [self.loginmanager setloginbehavior:fbsdkloginbehaviorweb]; [self.loginmanager loginwithpublishpermissions:@[@"publish_actions"] handler:^(fbsdkloginmanagerloginresult *result, nserror *error) { if ([result.grantedpermissions containsobject:@"publish_actions"]) { }}]; } }
so error getting login page again , asking user credentials again when getsharingpermissions
called. please help. in advance.
Comments
Post a Comment