Android Facebook SDK 4.0 login with LoginManager -
i trying migrate login code of old application sdk 3.0 sdk 4.0. have implemented login using loginmanager
, have custom login buttons.
the problem no response facebook api. no success, no error, no exception thrown whatsoever. code below:
//global refs //callbacks private callbackmanager mcallbackmanager; private facebookcallback<loginresult> mfacebookcallback; private list<string> mpermissions = arrays.aslist("email"); private loginmanager mloginmgr; private activity mactivity; //........ //code inside method facebooksdk.sdkinitialize(getapplicationcontext()); //perhaps bit excessive facebooksdk.addloggingbehavior(loggingbehavior.graph_api_debug_info); facebooksdk.addloggingbehavior(loggingbehavior.developer_errors); facebooksdk.addloggingbehavior(loggingbehavior.include_access_tokens); facebooksdk.addloggingbehavior(loggingbehavior.include_raw_responses); facebooksdk.setapplicationid(mactivity.getstring(r.string.sample_fb_id)); //init callbacks mfacebookcallback = new facebookcallback<loginresult>() { @override public void onsuccess(loginresult loginresult) { log.v("loginactivity login", loginresult.tostring()); graphrequest request = graphrequest.newmerequest(loginresult.getaccesstoken(), new graphrequest.graphjsonobjectcallback() { @override public void oncompleted(jsonobject object, graphresponse response) { // application code log.v("loginactivity", response.tostring()); try { string email = object.getstring("email"); log.v("loginactivity", "obtained email: ", email); } catch (jsonexception e) { e.printstacktrace(); } } }); request.executeasync(); } @override public void oncancel() { log.e("loginactivity", "facebook login canceled"); } @override public void onerror(facebookexception e) { log.e("loginactivity", "facebook login failed error"); } }; mcallbackmanager = callbackmanager.factory.create(); mloginmgr = loginmanager.getinstance(); mloginmgr.registercallback(mcallbackmanager, mfacebookcallback); mloginmgr.loginwithreadpermissions(mactivity, mpermissions);
using debugger
, able see line: mloginmgr.loginwithreadpermissions(mactivity, mpermissions);
gets executed, none of callbacks
ever triggered. have no errors in console, , device screen goes black , nothing happens.
i don't think matters, code executed in wrapper class (outside activity
). tried inside activity
, made no difference.
any suggestions? appreciated.
edit:
this declared inside androidmanifest.xml
:
<activity android:name="com.facebook.facebookactivity" android:theme="@android:style/theme.translucent.notitlebar" android:configchanges="keyboard|keyboardhidden|screenlayout|screensize|orientation" android:label="@string/app_name" />
if code in fragment, not use mactivity variable activity context.
to do:
add line:
callbackmanager.onactivityresult(requestcode, resultcode, data); in onactivityresult(, , , ) in fragment.
call:
loginmanager.getinstance().loginwithreadpermissions(**this**, arrays.aslist("public_profile", "user_friends"));
use this, not use this.getactivity()
- sure, done.
Comments
Post a Comment