distriqt / airnativeextensions

DEPRECATED: Original repository of the distriqt native extensions and is no longer maintained. Please see our site for the latest ANEs
https://airnativeextensions.com
2 stars 0 forks source link

Native login on Facebook from Android #309

Closed shamruk closed 8 years ago

shamruk commented 9 years ago

I was testing Facebook on android tablet with 4.1.1 (novo9-Spark-20130403-LX-V1) and found a bug. This android version has kind of native login (Facebook adds itself to settings->accounts). When I try to login it asks me for permissions and stays on this screen.

As you can see from the logs (http://pastie.org/9760124) is tells: Should not pass a read permission (basic_info) to a request for publish or manage authorization

My code:

        public function login(resposnder : IResponder) : void {
            openResponder = resposnder;
            var permissions : Array = ["basic_info"];
            var readOnly : Boolean = true; // We only want read permissions for now
            if (!loginUseNative) {
                permissions.push('publish_actions');
                readOnly = false;
            }
            // Begin the login and specify that we want to use the iOS6+ integrated OS dialog
            FacebookAPI.service.createSession(permissions, readOnly, loginUseNative);
        }

        private function get loginUseNative() : Boolean {
            return FacebookAPI.service.userHasIntegratedFacebookAccount() && !hasLoginFaults;
        }

But "userHasIntegratedFacebookAccount" is false and it tries to request all at once witch is great for FB app.

shamruk commented 9 years ago

Cannot make it work even without publish_actions

shamruk commented 9 years ago

More bugs

D/com.distriqt.FacebookAPI::FacebookAPICreateSessionFunction(12498): Creating session...
I/ActivityManager( 1798): START {cmp=com.belkatechnologies.clockmaker/com.distriqt.extension.facebookapi.FacebookAPILoginActivity (has extras) u=0} from pid 12498
D/dalvikvm( 1798): GC_FOR_ALLOC freed 1974K, 21% free 18344K/22983K, paused 73ms, total 73ms
D/com.distriqt.Application::GetDeactivateCodeFunction(12498): call()
D/com.distriqt.Application::ApplicationStateMonitor(12498): getDeactivateCode(): isScreenOn=true ACTION_SCREEN_OFF=false
W/System.err(12498): java.lang.UnsupportedOperationException: Session: an attempt was made to open an already opened session.
W/System.err(12498):    at com.facebook.Session.open(Session.java:985)
W/System.err(12498):    at com.facebook.Session.openForRead(Session.java:388)
W/System.err(12498):    at com.distriqt.extension.facebookapi.FacebookAPILoginActivity.onCreate(FacebookAPILoginActivity.java:123)
W/System.err(12498):    at android.app.Activity.performCreate(Activity.java:5008)
W/System.err(12498):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
W/System.err(12498):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
W/System.err(12498):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
W/System.err(12498):    at android.app.ActivityThread.access$600(ActivityThread.java:130)
W/System.err(12498):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
W/System.err(12498):    at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err(12498):    at android.os.Looper.loop(Looper.java:137)
W/System.err(12498):    at android.app.ActivityThread.main(ActivityThread.java:4745)
W/System.err(12498):    at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err(12498):    at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err(12498):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:810)
W/System.err(12498):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:577)
W/System.err(12498):    at dalvik.system.NativeStart.main(Native Method)
W/InputMethodManagerService( 1798): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@42930960 attribute=null
D/dalvikvm( 1798): GC_CONCURRENT freed 1808K, 21% free 18315K/22983K, paused 4ms+10ms, total 205ms
I/ActivityManager( 1798): START {act=android.intent.action.ACTION_REQUEST_SHUTDOWN flg=0x10000000 cmp=android/com.android.server.ShutdownActivity (has extras) u=0} from pid 1798
V/BatteryService( 1798): Change the charge status to not charging
I/PowerUI ( 2192): Dismiss Not Charging Dialog
D/com.distriqt.Application::GetDeactivateCodeFunction(12498): call()