Facebook / Parse Login behaving strange: The proxied app is not already installed

喜欢而已 提交于 2020-02-20 11:09:41

问题


I am going nuts with this! Although, the solutions out there did help me, they did not fix my problem.

I am adding Facebook login to my current app. The kicker is, I have a few apps that already have this feature. I had no problem adding it to them! I have looked at the code of those apps, and this code I am working on now is identical. The only difference I can think of is this app was out on the market then received a Facebook login feature. But, I can't imagine that would matter...

Code:

    Button fb = (Button) view.findViewById(R.id.bFacebook);
    Settings.setApplicationId(APPLICATION_ID);

    fb.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.d(TAG, "BUTTON WAS PRESSED");

            ParseFacebookUtils.logIn(Arrays.asList(ParseFacebookUtils.Permissions.User.ABOUT_ME),
                    getActivity(), new LogInCallback() {
                @Override
                public void done(final ParseUser user, ParseException err) {
                    if (user == null) {
                        Log.d("MyApp", "Uh oh. The user cancelled the Facebook login.");
                        Toast.makeText(getActivity(), "CANCEL", Toast.LENGTH_LONG).show();

                    } else if (user.isNew()) {
                        Log.d("MyApp", "User signed up and logged in through Facebook!");
                        Toast.makeText(getActivity(), "SIGNUP", Toast.LENGTH_LONG).show();
                    } else {
                        Log.d("MyApp", "User logged in through Facebook!");
                        Toast.makeText(getActivity(), "LOGIN", Toast.LENGTH_LONG).show();
                    }
                    end();
                }

                private void end() {
                    activity.changeFrag(Drawer.Frag.HOME);
                }
            });
        }
    });


}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);
}

I receive the WARNING:

com.facebook.http.protocol.ApiException: The proxied app is not already installed.

What happens:

  1. I click the log in button, FB app opens as it should
  2. Briefly a spinner will appear.
  3. FB will then promptly shut down, and my app is displayed again.

If you see my ParseCallback done code, you will notice that no matter the results of the user, it should change fragments. But this is never called, and logs are never displayed.

What I have Done:

  • I have gone in to my Parse settings, and added my Secret and ID in the settings (All the research I have done, I notice this is what a lot of people will do wrong. Check this if you are here for answers!!)
  • I have added the Facebook Sdk, using the Parse.com guide.
  • I have quadruple checked that my KeyHash is correct.
  • I am calling ParseFacebookUtils.initialize(APPLICATION_ID); in my application's onCreate.
  • I have installed the FB app
  • I have tried this both on emulator and physical device
  • I have COMPLETELY started over with a new project that only includes the updated Parse.jar and Facebook-sdk. STILL nothing.

Here is a full stack trace of the warning. It did no good for me, but maybe you can decipher it:

05-25 18:27:09.402    4515-4515/com.codealchemist D/Login Facebook﹕ BUTTON WAS PRESSED
com.codealchemist/com.facebook.LoginActivity: +82ms
05-25 18:27:10.002    3746-4556/com.facebook.katana W/fb4a(:<default>):BlueServiceQueue﹕ Exception during service
    com.facebook.http.protocol.ApiException: The proxied app is not already installed.
            at com.facebook.http.protocol.ApiResponseChecker.b(ApiResponseChecker.java:83)
            at com.facebook.http.protocol.ApiResponseChecker.a(ApiResponseChecker.java:162)
            at com.facebook.http.protocol.ApiResponse.g(ApiResponse.java:151)
            at com.facebook.platform.auth.server.AuthorizeAppMethod.a(AuthorizeAppMethod.java:275)
            at com.facebook.platform.auth.server.AuthorizeAppMethod.a(AuthorizeAppMethod.java:31)
            at com.facebook.http.protocol.ApiResponseHandler.a(ApiResponseHandler.java:55)
            at com.facebook.http.protocol.ApiResponseHandler.handleResponse(ApiResponseHandler.java:28)
            at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:314)
            at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:144)
            at com.facebook.http.common.FbHttpRequestProcessor.b(FbHttpRequestProcessor.java:100)
            at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:230)
            at com.facebook.http.protocol.SingleMethodRunnerImpl.a(SingleMethodRunnerImpl.java:402)
            at com.facebook.http.protocol.SingleMethodRunnerImpl.a(SingleMethodRunnerImpl.java:164)
            at com.facebook.http.protocol.AbstractSingleMethodRunner.a(AbstractSingleMethodRunner.java:18)
            at com.facebook.platform.common.server.SimplePlatformOperation.a(SimplePlatformOperation.java:40)
            at com.facebook.platform.common.server.PlatformOperationHandler.a(PlatformOperationHandler.java:60)
            at com.facebook.fbservice.service.BlueServiceQueue.e(BlueServiceQueue.java:329)
            at com.facebook.fbservice.service.BlueServiceQueue.d(BlueServiceQueue.java:55)
            at com.facebook.fbservice.service.BlueServiceQueue$3.run(BlueServiceQueue.java:258)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
            at com.facebook.common.executors.ListenableScheduledFutureImpl.run(ListenableScheduledFutureImpl.java:59)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.os.HandlerThread.run(HandlerThread.java:61)
05-25 18:27:10.002    1272-1783/system_process I/ActivityManager﹕ START u0 {cmp=com.facebook.katana/.ProxyAuth (has extras)} from pid 4515
05-25 18:27:10.012    3746-3817/com.facebook.katana W/Settings﹕ Setting wifi_sleep_policy has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value.
05-25 18:27:10.032    1272-1420/system_process I/ActivityManager﹕ START u0 {cmp=com.facebook.katana/.ProxyAuthDialog (has extras)} from pid 3746
05-25 18:27:10.082    3746-3746/com.facebook.katana D/dalvikvm﹕ GC_FOR_ALLOC freed 2462K, 34% free 11230K/16936K, paused 20ms, total 21ms
05-25 18:27:10.192    3746-3746/com.facebook.katana W/EGL_emulation﹕ eglSurfaceAttrib not implemented
05-25 18:27:10.212    3746-3746/com.facebook.katana W/AwContents﹕ nativeOnDraw failed; clearing to background color.
05-25 18:27:10.222    1272-1286/system_process I/ActivityManager﹕ Displayed com.facebook.katana/.ProxyAuthDialog: +187ms (total +206ms)
05-25 18:27:10.292    3746-3746/com.facebook.katana W/EGL_emulation﹕ eglSurfaceAttrib not implemented
05-25 18:27:10.592    3746-3746/com.facebook.katana E/eglCodecCommon﹕ glUtilsParamSize: unknow param 0x00000b44
05-25 18:27:10.602    3746-3746/com.facebook.katana E/eglCodecCommon﹕ glUtilsParamSize: unknow param 0x00000bd0
05-25 18:27:10.612    3746-3746/com.facebook.katana I/chromium﹕ [INFO:async_pixel_transfer_manager_android.cc(56)] Async pixel transfers not supported
05-25 18:27:10.622    3746-3746/com.facebook.katana E/chromium﹕ [ERROR:gles2_cmd_decoder_autogen.h(1144)] [GroupMarkerNotSet(crbug.com/242999)!:9854F8B8]GL ERROR :GL_INVALID_OPERATION : GetIntegerv: <- error from previous GL command
05-25 18:27:10.672    3746-3746/com.facebook.katana I/chromium﹕ [INFO:async_pixel_transfer_manager_android.cc(56)] Async pixel transfers not supported
05-25 18:27:10.692    3746-3746/com.facebook.katana E/chromium﹕ [ERROR:gles2_cmd_decoder_autogen.h(1144)] [GroupMarkerNotSet(crbug.com/242999)!:483727B9]GL ERROR :GL_INVALID_OPERATION : GetIntegerv: <- error from previous GL command
05-25 18:27:10.752    3746-3746/com.facebook.katana E/eglCodecCommon﹕ **** ERROR unknown type 0x0 (glSizeof,72)
05-25 18:27:10.752    3746-3746/com.facebook.katana E/eglCodecCommon﹕ glUtilsParamSize: unknow param 0x00000b44
05-25 18:27:10.762    3746-3746/com.facebook.katana E/eglCodecCommon﹕ glUtilsParamSize: unknow param 0x00000bd0
05-25 18:27:10.792    3746-3746/com.facebook.katana E/eglCodecCommon﹕ **** ERROR unknown type 0x0 (glSizeof,72)
05-25 18:27:10.872    4515-4515/com.codealchemist W/EGL_emulation﹕ eglSurfaceAttrib not implemented
05-25 18:27:10.872    4515-4515/com.codealchemist E/HardwareRenderer﹕ An error has occurred while drawing:
    java.lang.IllegalStateException: The display list is not valid.
            at android.view.GLES20DisplayList.getNativeDisplayList(GLES20DisplayList.java:49)
            at android.view.GLES20Canvas.drawDisplayList(GLES20Canvas.java:420)
            at android.view.HardwareRenderer$GlRenderer.drawDisplayList(HardwareRenderer.java:1646)
            at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1469)
            at android.view.ViewRootImpl.draw(ViewRootImpl.java:2381)
            at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2253)
            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1883)
            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
            at android.view.Choreographer.doCallbacks(Choreographer.java:574)
            at android.view.Choreographer.doFrame(Choreographer.java:544)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)

回答1:


I got this error too.

I remove the request permission and the things back to work.

In facebook permission guide, in section review it said

If your app asks for more than than public_profile, email and user_friends it will require review by Facebook before your app can be used by people other than the app's developers.

The time to review your app is usually about 7 business days. Some extra-sensitive permissions, as noted below, can take up to 14 business days.

So I reduce permission to only those three permission and it is working. Maybe your problem is this.




回答2:


  • Uninstall the app
  • Remove the the app in Facebook
  • Try again


来源:https://stackoverflow.com/questions/23860586/facebook-parse-login-behaving-strange-the-proxied-app-is-not-already-installe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!