guys want post on facebook, using facebook sdk, line of code not executed. pops-up dialog login, when login, sessionevents.authlistener listener
should listen login success. not listening. , every time when start app ask login.
below code.
public class facebookconnector { private facebook mfacebook; private authlistener msessionlistener; private context context; private string[] permissions; private activity activity; public facebookconnector(string appid, activity activity, context context, string[] permissions) { this.mfacebook = new facebook(appid); sessionstore.restore(mfacebook, context); sessionevents.addauthlistener(msessionlistener); sessionevents.addlogoutlistener((logoutlistener) msessionlistener); this.context = context; this.permissions = permissions; this.activity = activity; } public void postmessageonwall(string msg) { if (mfacebook.issessionvalid()) { bundle parameters = new bundle(); parameters.putstring("message", msg); try { string response = mfacebook.request("me/feed", parameters, "post"); system.out.println(response); } catch (ioexception e) { e.printstacktrace(); } } else { login(); } } public void login() { if (!mfacebook.issessionvalid()) { mfacebook.authorize(this.activity, this.permissions, facebook.force_dialog_auth, new logindialoglistener()); } } public facebook getfacebook() { return mfacebook; } }
and in activity class....
private void onfacebookbtnclicked() { if (facebookconnector.getfacebook().issessionvalid()) { postmessageinthread(); } else { sessionevents.authlistener listener = new sessionevents.authlistener() { @override public void onauthsucceed() { postmessageinthread(); } @override public void onauthfail(string error) { } }; sessionevents.addauthlistener(listener); facebookconnector.login(); } } private void postmessageinthread() { thread t = new thread() { public void run() { try { facebookconnector.postmessageonwall(mquote.getquotetext() + "\n" + mquote.getauthorname()); mfacebookhandler.post(mupdatefacebooknotification); } catch (exception ex) { log.e("facebook", "error sending msg", ex); } } }; t.start(); } final runnable mupdatefacebooknotification = new runnable() { public void run() { toast.maketext(getbasecontext(), "facebook updated !", toast.length_long).show(); } };
in postmessageinthread
method not executing, don't know why
set permission public
private string[] permissions = new string[] { "publish_stream", "read_stream", "offline_access" };
this check session exist if yes direct update if not ask user permission update on wall.
Comments
Post a Comment