java - sesion - log in with facebook android
Facebook/Parse Login se comporta extraño: la aplicación proxied no está ya instalada (2)
¡Me estoy volviendo loco con esto! Aunque las soluciones allí me ayudaron, no solucionaron mi problema.
Estoy agregando el inicio de sesión de Facebook a mi aplicación actual. El truco es que tengo algunas aplicaciones que ya tienen esta característica. ¡No tuve ningún problema añadiéndoselo! Miré el código de esas aplicaciones, y este código en el que estoy trabajando ahora es idéntico. La única diferencia que puedo pensar es que esta aplicación salió al mercado y luego recibió una función de inicio de sesión de Facebook. Pero, no me puedo imaginar que eso importaría ...
Código:
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);
}
Recibo la ADVERTENCIA:
com.facebook.http.protocol.ApiException: la aplicación proxy no está instalada todavía.
Lo que pasa:
- Hago clic en el botón de inicio de sesión, la aplicación FB se abre como debería
- Brevemente aparecerá un spinner.
- FB se cerrará rápidamente y mi aplicación se mostrará nuevamente.
Si ve mi código ParseCallback
done
, notará que no importa los resultados del usuario, debería cambiar los fragmentos. Pero esto nunca se llama, y los registros nunca se muestran.
Que he hecho:
- He entrado en mi configuración de Parse, y he agregado mi secreto e ID en la configuración (toda la investigación que he hecho, me doy cuenta de que esto es lo que muchas personas van a hacer mal. ¡Compruebe esto si está aquí para obtener respuestas!)
- He agregado el Sdk de Facebook , usando la guía de Parse.com .
- He comprobado cuádruple que mi KeyHash es correcta.
- Estoy llamando a
ParseFacebookUtils.initialize(APPLICATION_ID);
en la aplicaciónonCreate
. - He instalado la aplicación FB
- He probado esto tanto en el emulador como en el dispositivo físico
- HE COMENZADO COMPLETAMENTE con un nuevo proyecto que solo incluye los Parse.jar y Facebook-sdk actualizados. Aún nada.
Aquí hay un rastro completo de la advertencia. No me sirvió, pero quizás puedas descifrarlo:
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)
- Desinstalar la aplicación
- Eliminar la aplicación en Facebook
- Inténtalo de nuevo
También recibí este error.
Elimino el permiso de solicitud y las cosas vuelven a funcionar.
En la guía de permiso de Facebook , en la reseña de la sección dice
Si su aplicación solicita más de que public_profile, correo electrónico y user_friends, será necesario que Facebook lo revise para que otras personas que no sean los desarrolladores de la aplicación puedan utilizarla.
El tiempo para revisar su aplicación generalmente es de aproximadamente 7 días hábiles. Algunos permisos extra-sensibles, como se indica a continuación, pueden demorar hasta 14 días hábiles.
Así que reduzco el permiso solo a esos tres permisos y está funcionando. Tal vez tu problema es este.