Android: post to facebook programatically with FB SDK 4.x -


i want post facebook without dialog, programatically, trying

public void login(callbackmanager callbackmanager) {     loginmanager.getinstance().registercallback(callbackmanager, new facebookcallback<loginresult>() {         @override         public void onsuccess(loginresult loginresult) {             log.d(logtag, "facebook login success");             share("kk");         }          @override         public void oncancel() {             log.w(logtag, "facebook login canceled");             share("kk");         }          @override         public void onerror(facebookexception exception) {             log.e(logtag, "facebook login error");             exception.printstacktrace();         }     });      loginmanager.getinstance().loginwithpublishpermissions((activity) context, arrays.aslist("publish_actions")); }  public void share(final string msg) {      log.d(logtag, "facebook sharing new message");     set<string> permissions = accesstoken.getcurrentaccesstoken().getpermissions();     accesstoken accesstoken = accesstoken.getcurrentaccesstoken();      bundle postparams = new bundle();     postparams.putstring("name", "yourtitle");     postparams.putstring("caption", "yourcaption");     postparams.putstring("description", "yourdesc");     postparams.putstring("message", "yourmessage");      graphrequest request = new graphrequest(accesstoken, "me/feed", postparams, httpmethod.post, null);     asyntaskgraphrequest asyntaskgraphrequest = new asyntaskgraphrequest(request);     asyntaskgraphrequest.execute(); } 

the problem when app logs facebook shows message "this not let app post facebook" although using

loginmanager.getinstance().loginwithpublishpermissions((activity) context, arrays.aslist("publish_actions")); 

enter image description here

on other hand, how can check whether user still logged in fb call loginwithpublishpermissions once?

thank !

as said @ankush, necesary registered authorized developer @ app settings in developer facebook web.

my final code (now working fine) is:

public class fbmanager {  private context context; private static final string logtag = "fbmanager"; private callbackmanager callbackmanager;  public fbmanager(context context, callbackmanager callbackmanager){     this.context = context;     this.callbackmanager = callbackmanager; }  public static void tracekeyhash(activity activity){     try {         packageinfo info = activity.getpackagemanager().getpackageinfo("com.muv.android", packagemanager.get_signatures);         (signature signature : info.signatures) {             messagedigest md = messagedigest.getinstance("sha");             md.update(signature.tobytearray());             log.i(logtag, "share - keyhash: " + base64.encodetostring(md.digest(), base64.default));         }     }     catch (exception e) {         e.printstacktrace();     } }  public void share(final string msg) {      if (isloggedin()) {         post(msg);     }     else{         loginmanager.getinstance().registercallback(callbackmanager, new facebookcallback<loginresult>() {             @override             public void onsuccess(loginresult loginresult) {                 log.d(logtag, "facebook login success");                 post(msg);             }              @override             public void oncancel() {                 log.w(logtag, "facebook login canceled");             }              @override             public void onerror(facebookexception exception) {                 log.e(logtag, "facebook login error");                 exception.printstacktrace();             }         });          loginmanager.getinstance().loginwithpublishpermissions((activity) context, arrays.aslist("publish_actions"));     } }  public boolean isloggedin() {     accesstoken accesstoken = accesstoken.getcurrentaccesstoken();     return accesstoken != null; }  private void post(final string msg){     log.d(logtag, "facebook posting new message");     set<string> permissions = accesstoken.getcurrentaccesstoken().getpermissions();     accesstoken accesstoken = accesstoken.getcurrentaccesstoken();      bundle postparams = new bundle();     postparams.putstring("message", msg);      graphrequest request = new graphrequest(accesstoken, "me/feed", postparams, httpmethod.post, null);     graphrequestasynctask asyntaskgraphrequest = new graphrequestasynctask (request);     asyntaskgraphrequest.execute(); } } 

Comments

Popular posts from this blog

android - Pass an Serializable object in AIDL -

How to provide Authorization & Authentication using Asp.net, C#? -

How to use Authorization & Authentication in Asp.net, C#? -