问题
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:
- I click the log in button, FB app opens as it should
- Briefly a spinner will appear.
- 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'sonCreate
. - 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