my facebook login parse working no issues access token generated not showing permission friendlist although gave permission @ time of login. came know when used facebook graph api 'friendlists'(fbid/friendlists) , response array empty. so, run graph api explorer same access token generated. not show me error , data array same empty , debug message
"the field 'friendlists' accessible on user object after user grants 'read_custom_friendlists' permission"
this method using
wlloginviewcontroller *login = [[wlloginviewcontroller alloc]init]; login.fields = pfloginfieldsfacebook; nsarray *permission = [[nsarray alloc]initwithobjects:@"email",@"read_custom_friendlists",@"publish_actions",@"user_location",@"user_hometown",@"user_website",@"user_about_me",@"user_photos",@"user_friends",@"read_custom_friendlists", nil]; login.facebookpermissions = permission;
wlloginviewcontroller has inherited pfuserloginmanager , calling other class.
- (void)loginviewcontroller:(pfloginviewcontroller *)logincontroller didloginuser:(pfuser *)user { [fbrequestconnection startformewithcompletionhandler:^(fbrequestconnection *connection, id result, nserror *error) { nslog(@"permissions%@",logincontroller.facebookpermissions); if(result) { if ([result valueforkey:@"hometown"]) { nsstring *nn = [[result valueforkey:@"hometown"] valueforkey:@"name"]; [user setvalue:[[result valueforkey:@"hometown"] valueforkey:@"name"] forkey:@"hometown"]; } if ([result valueforkey:@"location"]) { [user setvalue:[[result valueforkey:@"location"] valueforkey:@"name"] forkey:@"location"]; } [user setobject:[result valueforkey:@"id"] forkey:kwluser_facebookid]; [user setobject:[result valueforkey:@"name"] forkey:kwluser_name]; [user saveinbackgroundwithblock:^(bool succeeded, nserror *error) { if([pfinstallation currentinstallation]) { // save in background current installation. [[pfinstallation currentinstallation] setobject:user forkey:@"user"]; [[pfinstallation currentinstallation]saveinbackground]; } }]; [[parsemanager sharedinstance]savedevicetoken:[[nsuserdefaults standarduserdefaults]objectforkey:@"devicetoken"]]; [self dismissviewcontrolleranimated:yes completion:nil]; }else { uialertview *alert = [[uialertview alloc]initwithtitle:@"could not login" message:@"could not login facebook, please try again" delegate:nil cancelbuttontitle:@"ok" otherbuttontitles: nil]; [alert show]; } }];
} method which running when user return app facebook.the nslog in code showing permission gave.
and method handling facebook request -(void)handlefacebookfriendsrequest {
nsstring *queryparams = @"id,name,picture.width(350).height(250),location,hometown,likes.limit(100000),statuses.limit(1),languages"; [queryparams stringbyaddingpercentescapesusingencoding:nsutf8stringencoding]; nslog(@"%@",[fbsession activesession].permissions); nslog(@"%@",[[fbsession activesession].permissions description]); nslog(@"%@",[fbsession activesession].accesstokendata.accesstoken); [fbrequestconnection startwithgraphpath:[nsstring stringwithformat:@"me/friends?fields=%@",queryparams] completionhandler:^(fbrequestconnection *connection, id result, nserror *error) { if (!error) { //change getting out nslog(@"%@",[result objectforkey:@"data"]); [[applicationdatamodel sharedinstance]setfacebookfriendslist:[result objectforkey:@"data"]]; [self facebookrequestdidload:result]; } else { [self facebookrequestdidfailwitherror:error]; } }]; }
i stuck badly need help. in advance
the read_custom_friendlists not default permission, result have go through approval process feature (https://developers.facebook.com/docs/facebook-login/permissions/v2.2)
to submit items approval go to: developers.facebook.com -> apps -> status & review
caveat: "people listed in roles section of app dashboard - including admins, developers , testers - can grant permission without review. if people in these roles use app, don't need submit login review."(https://developers.facebook.com/docs/apps/faq)
Comments
Post a Comment