Unable to get Publish Permission With Test User Facebook Android -


i want publish post user's wall. know facebook allows tester , developers post on wall. have added user tester list. when try publish permission, says user has granted permission (as shown in screenshot) , returns. not able permission or post on wall. moreover, callback's method not called well.

enter image description here

code

i have followed code facebook example rpssample.

//publish wall public void publishresult() {          registerpublishpermissioncallback();          if (canpublish()) { //see definition below             sharelinkcontent content = new sharelinkcontent.builder()                     .setcontenturl(uri.parse(urltopost))                     .build();              shareapi.share(content, new facebookcallback<sharer.result>() {                 @override                 public void onsuccess(sharer.result result) {                    callback.didshareonfacebooksuccessfully();                 }                  @override                 public void oncancel() {                     // should not happen                 }                  @override                 public void onerror(facebookexception error) {                     showtoast(error.getmessage());                 }             });         }     }  //check if user has permission or not private boolean canpublish() {         final accesstoken accesstoken = accesstoken.getcurrentaccesstoken();         if (accesstoken != null) {             if (accesstoken.getpermissions().contains(appconstants.additional_permissions)) {                 // if have publish permissions, go ahead , publish                 return true;             } else {                 // otherwise ask user if they'd publish facebook                 new alertdialog.builder(activity)                         .settitle(r.string.share_with_friends_title)                         .setmessage(urltopost)                         .setpositivebutton(r.string.share_with_friends_yes, canpublishclicklistener)                         .setnegativebutton(r.string.share_with_friends_no, dontpublishclicklistener)                         .show();                 return false;             }         }         return false;     }  //if user allows, ask facebook grant publish_action permission     private dialoginterface.onclicklistener canpublishclicklistener = new dialoginterface.onclicklistener() {         @override         public void onclick(dialoginterface dialoginterface, int i) {             if (accesstoken.getcurrentaccesstoken() != null) {                 // if choose publish, request publish permissions                  loginmanager.getinstance()                         .setdefaultaudience(defaultaudience.friends)                         .loginwithpublishpermissions(activity,                                 arrays.aslist(appconstants.additional_permissions));             }         }     };  //callback - of method doesn't call.  private void registerpublishpermissioncallback() {         loginmanager.getinstance().registercallback(                 callbackmanager,                 new facebookcallback<loginresult>() {                     @override                     public void onsuccess(loginresult loginresult) {                         accesstoken accesstoken = accesstoken.getcurrentaccesstoken();                         if (accesstoken.getpermissions().contains(appconstants.additional_permissions)) {                             publishresult();                         } else {                             handleerror("not enough permissions publish");                         }                     }                      @override                     public void oncancel() {                     }                      @override                     public void onerror(facebookexception exception) {                         handleerror(exception.getmessage());                     }                      private void handleerror(string errormessage) {                         // means user did not grant write permissions,                         // don't implicit publishes                         showtoast(errormessage);                     }                 }         );     } 

my app live on console. please guide requirement of facebook publish permission test user? thanks.

use below code check if permission granted or not.

 string url = "/" + "(userfbid)" + "/permissions";     new graphrequest(accesstoken.getcurrentaccesstoken(), url, null,                         httpmethod.get, new graphrequest.callback() {                              public void oncompleted(graphresponse response) {                                    try {                                      jsonobject json = new jsonobject(                                             response.getrawresponse());                                      jsonarray data = json.getjsonarray("data");                                      boolean ispermitted = false;                                      (int = 0; < data.length(); i++) {                                          if (data.getjsonobject(i)                                                 .getstring("permission")                                                 .equals("publish_actions")) {                                             ispermitted = true;                                              string status = data.getjsonobject(i)                                                     .getstring("status");                                              if (status.equals("granted")) {                                                  publishresult()                                              } else {                                                  loginfacebook();                                             }                                              break;                                         }                                     }                                      if (!ispermitted) {                                         loginfacebook();                                     }                                  } catch (exception e) {                                     e.printstacktrace();                                 }                             }                          }).executeasync(); 

replace user's fb id on place of (userfbid).

if permission not granted use function ask user permission.

 private void loginfacebook() {              loginmanager = loginmanager.getinstance();              loginmanager.loginwithpublishpermissions(this,                     arrays.aslist("publish_actions"));              loginmanager.registercallback(callbackmanager,                     new facebookcallback<loginresult>() {                          @override                         public void onsuccess(loginresult loginresult) {                                publishresult()                         }                          @override                         public void onerror(facebookexception error) {                          }                          @override                         public void oncancel() {                          }                      });         } 

Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -