java - Android Facebook Graph api basic information requesting -
just trying allow app access basic information authenticated facebook user, yet logcat tells me
06-30 16:37:27.969: warn/system.err(1559): com.facebook.android.facebookerror: active access token must used query information current user.
right after authentification code ran. can point me in right direction? i've seen similar post used identical code , worked.
thanks
facebook facebook = new facebook("187212574660004"); textview ntext; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); ntext = (textview) this.findviewbyid(r.id.nametext); facebook.authorize(this, new string[] {"offline_access", "user_interests", "friends_interests"}, new dialoglistener() { public void oncomplete(bundle values) { setcontentview(r.layout.homepage); } public void onfacebookerror(facebookerror error) {} public void onerror(dialogerror e) {} public void oncancel() {} }); jsonobject json_data = null; try { jsonobject response = util.parsejson(facebook.request("me/friends")); // friend information facebook jsonarray jarray = response.getjsonarray("data"); json_data = jarray.getjsonobject(0); string name = json_data.getstring("name"); log.i("friend is", name); ntext.settext(name); } catch (malformedurlexception e) { e.printstacktrace(); } catch (jsonexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } catch (facebookerror e) { e.printstacktrace(); } } @override public void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); facebook.authorizecallback(requestcode, resultcode, data); }
tried method described before manno23 , got
06-30 19:27:04.338: error/androidruntime(349): caused by: java.lang.nullpointerexception 06-30 19:27:04.338: error/androidruntime(349): @ com.staffit.facebookpage.getfriends(facebookpage.java:67) 06-30 19:27:04.338: error/androidruntime(349): @ com.staffit.facebookpage.access$0(facebookpage.java:55) 06-30 19:27:04.338: error/androidruntime(349): @ com.staffit.facebookpage$1.oncomplete(facebookpage.java:41) 06-30 19:27:04.338: error/androidruntime(349): @ com.facebook.android.facebook.authorizecallback(facebook.java:383) 06-30 19:27:04.338: error/androidruntime(349): @ com.staffit.facebookpage.onactivityresult(facebookpage.java:93) 06-30 19:27:04.338: error/androidruntime(349): @ android.app.activity.dispatchactivityresult(activity.java:3907) 06-30 19:27:04.338: error/androidruntime(349): @ android.app.activitythread.deliverresults(activitythread.java:2492) 06-30 19:27:04.338: error/androidruntime(349): ... 11 more
both of above answers correct. can put chunk of code request separate method , call method in oncomplete(), i.e.
facebook facebook = new facebook("xxxxxasdasdajksdad"); textview ntext; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); ntext = (textview) this.findviewbyid(r.id.nametext); facebook.authorize(this, new string[] {"offline_access", "user_interests", "friends_interests"}, new dialoglistener() { public void oncomplete(bundle values) { getfriends(); setcontentview(r.layout.homepage); } public void onfacebookerror(facebookerror error) {} public void onerror(dialogerror e) {} public void oncancel() {} }); } private void getfriends(){ jsonobject json_data = null; try { jsonobject response = util.parsejson(facebook.request("me/friends")); // friend information facebook jsonarray jarray = response.getjsonarray("data"); json_data = jarray.getjsonobject(0); string name = json_data.getstring("name"); log.i("friend is", name); ntext.settext(name); } catch (malformedurlexception e) { e.printstacktrace(); } catch (jsonexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } catch (facebookerror e) { e.printstacktrace(); } } @override public void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); facebook.authorizecallback(requestcode, resultcode, data); }
Comments
Post a Comment