CakePhp Facebook API, FB-> API ('/ Me') devuelve el valor vacío -- None campo con cakephp campo con cakephp-1.3 campo con cakephp-2.0 camp Relacionados El problema

cakephp facebook api, FB->api('/me') returns empty value


2
vote

problema

Español

Yo uso Webtechnick Facebook Plugin para el sitio web de CAKEPHP 1.3. Lo implementé hace aproximadamente un año. Y funcionó bien hasta ahora. Pero hoy descubrí que cuando intento iniciar sesión (como un nuevo usuario), no guarda los datos de usuario de Facebook, ya que $this->Connect->user() (qué resultado se toma de $this->FB->api('/me')5 , < Código> /plugins/facebook/controller/components/connect.php, line 194 ) devuelve nada. Lo intenté también, este complemento de Facebook en otro sitio web de CakePhp 2.0, pero el Lo mismo estaba allí.

Creo que, que hubo algún cambio en la API de Facebook, porque no hice absolutamente ningún cambio en el sitio web, lo que podría traer a ese resultado.

Esto es user FUNCIÓN EN connect.php Component

  function user($field = null){            if(isset($this->uid)){         $this->uid = $this->uid;         if($this->Controller->Session->read('FB.Me') == null){             $this->Controller->Session->write('FB.Me', $this->FB->api('/me'));         }         $this->me = $this->Controller->Session->read('FB.Me');      }      else {         $this->Controller->Session->delete('FB');     }      if(!$this->me){         return null;     }      if($field){         $retval = Set::extract("/$field", $this->me);         return empty($retval) ? null : $retval[0];     }      return $this->me; }   

y mi Reg: RegistryImpl_Stub[UnicastRef [liveRef: [endpoint:[10.50.18.205:1099](remote),objID:[0:0:0, 0]]]] Remote Exception in DisplayGetEngine.main() java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: server.I_Server at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:419) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267) at sun.rmi.transport.Transport$1.run(Transport.java:177) at sun.rmi.transport.Transport$1.run(Transport.java:174) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:173) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377) at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source) at server.Server.runServer(Server.java:50) at server.Server.main(Server.java:31) 0 FUNCIÓN EN Reg: RegistryImpl_Stub[UnicastRef [liveRef: [endpoint:[10.50.18.205:1099](remote),objID:[0:0:0, 0]]]] Remote Exception in DisplayGetEngine.main() java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: server.I_Server at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:419) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267) at sun.rmi.transport.Transport$1.run(Transport.java:177) at sun.rmi.transport.Transport$1.run(Transport.java:174) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:173) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377) at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source) at server.Server.runServer(Server.java:50) at server.Server.main(Server.java:31) 1111

  Reg: RegistryImpl_Stub[UnicastRef [liveRef: [endpoint:[10.50.18.205:1099](remote),objID:[0:0:0, 0]]]] Remote Exception in DisplayGetEngine.main()  java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:      java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:      java.lang.ClassNotFoundException: server.I_Server     at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:419)     at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)     at sun.rmi.transport.Transport$1.run(Transport.java:177)     at sun.rmi.transport.Transport$1.run(Transport.java:174)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.Transport.serviceCall(Transport.java:173)     at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)     at java.lang.Thread.run(Thread.java:724)     at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273)     at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251)     at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377)     at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)     at server.Server.runServer(Server.java:50)     at server.Server.main(Server.java:31) 2  

¡Gracias!

Original en ingles

I use Webtechnick Facebook plugin for cakephp 1.3 website. I implemented it about a year ago. And it worked fine until now. But today I found out that when I try to login(as a new user) it does not save facebook user data, because $this->Connect->user() (which result is taken from $this->FB->api('/me'), /plugins/facebook/controller/components/connect.php, line 194) returns nothing. I tried also, this facebook plugin on another cakephp 2.0 website, but the same thing was there.

I think, that there was some change in facebook api, because I did not absolutely make any change on the website, which could bring to that result.

this is user function in connect.php component

function user($field = null){            if(isset($this->uid)){         $this->uid = $this->uid;         if($this->Controller->Session->read('FB.Me') == null){             $this->Controller->Session->write('FB.Me', $this->FB->api('/me'));         }         $this->me = $this->Controller->Session->read('FB.Me');      }      else {         $this->Controller->Session->delete('FB');     }      if(!$this->me){         return null;     }      if($field){         $retval = Set::extract("/$field", $this->me);         return empty($retval) ? null : $retval[0];     }      return $this->me; } 

and my beforeFacebookSave() function in app_controller

public function beforeFacebookSave() {     $fbUser = $this->Connect->user ();              //debug($fbUser);  // outputs nothing           $this->Connect->authUser ['User'] ['email'] = $fbUser ['email'];                 $this->Connect->authUser ['User'] ['first_name'] = $fbUser ['first_name'];         $this->Connect->authUser ['User'] ['last_name'] = $fbUser ['last_name'];              return true;  }     

Thank you !

           

Lista de respuestas

4
 
vote
vote
La mejor respuesta
 

Hubo un cambio de certificado en Facebook que no se reflejó en el SDK (porque usó el certificado anterior). Dado que el complemento se basa en PHP SDK, debería simplemente buscar la última versión del repo https: // github.com/wbtechnick/cakephp-facebook-plugin . El autor ha presionado el compromiso de incluir el nuevo SDK PHP con el nuevo certificado.

https://github.com/wbtechnick/cakephp-facebook- Plugin / Tree / Master / Vendor

El registro de errores debe tener una excepción de Facebook debido a problemas SSL que se ahoga las llamadas API que causan /me para volver a vaciar.

 

There was a certificate change on Facebook that wasn't reflected in the SDK (because it used the old certificate). Since the plugin is based on PHP SDK, you should just fetch the latest version of the repo https://github.com/webtechnick/CakePHP-Facebook-Plugin. The author has pushed the commit to include the new PHP SDK with the new certificate.

https://github.com/webtechnick/CakePHP-Facebook-Plugin/tree/master/Vendor

Your error log should have a Facebook Exception due to SSL problems which chokes the API calls causing /me to return empty.

 
 
     
     
0
 
vote

Intenta esto, funciona para mí

  $infos = $facebook->api('/me?fields=id,first_name,last_name,picture,email');   
 

try this, it work for me

$infos = $facebook->api('/me?fields=id,first_name,last_name,picture,email'); 
 
 

Relacionados problema

1  Pantalla CakePHP Otro modelo asociado con la clave externa  ( Cakephp display other model associated with foreign key ) 
Tengo el artículo de los modelos y el actor con una relación habtm (FINANCIA DE TRABAJO) . Ahora, agregué el Modelo de roles , que sostiene el actorid, ...

2  Instale CAKEPHP 2 consola en Ubuntu  ( Install cakephp 2 console on ubuntu ) 
He instalado amplificador en mi Ubuntu. Amo a CakePHP y quiero usarlo. ¿Cómo puedo usar la consola de hornear en Ubuntu? note : apt-get install cakephp-...

0  CAKEPHP - AUTH - $ CRENTE_USER - NO ID, FIRST_NAME, Last_Name, etc  ( Cakephp auth current user no id first name last name etc ) 
cuando inicie sesión con: $this->Auth->login($this->request->data) y ahora, cuando digo: $this->set('current_user', $this->Auth->user()); en My ...

0  Realizando una operación de búsqueda simple en CakePHP  ( Performing a simple find operation in cakephp ) 
Usando CakePHP, necesito recuperar una lista básica de registros. Sin uniones o formato especial de resultados de CakePHP, solo una matriz básica de registros...

0  Aviso (8): modificación indirecta de la propiedad sobrecargada  ( Notice 8 indirect modification of overloaded property ) 
Después de actualizar mi CakePHP de 1.3 a 2.1. Tengo este error Aviso (8): modificación indirecta de la propiedad sobrecargada ThreadsController::$data n...

0  Declaración de búsqueda compleja, no sé cómo escribir valores múltiples para una condición  ( Complex find statement dont know how to write multiple values for one conditio ) 
Estoy tratando de construir una llamada de búsqueda pagada a mi modelo de unidad. Necesito la condición de ser que busca la unidad. Type of Condo y Rural, Cas...

1  @ Fuente-cara en un CakePhp WebApp (no funcionando a través de varios tipos de navegadores)  ( Font face in a cakephp webapp not working across various browser types ) 
@ font-face parece que la cita sencilla para configurar en mi CSS, y sin embargo, no se está utilizando mi fuente definida. Esto se encuentra en un CAPEPHP 2....

1  HABTM Encuentra con CakePHP 2.0  ( Habtm find with cakephp 2 0 ) 
Estoy tratando de hacer una búsqueda, usando la paginación para publicaciones que tienen una etiqueta o etiquetas específicas (por ejemplo, si un usuario fue ...

3  Enviando datos a través de AJAX en CakePHP  ( Sending data via ajax in cakephp ) 
Soy nuevo en CakePHP y tratando de enviar datos desde AJAX a My Controller Action. Tengo un modelo emergente en el que hay un cuadro de entrada. Quiero agarr...

1  Caminos relativos para JavaScript en CakePHP2  ( Relative paths for javascript on cakephp2 ) 
Me preguntaba si hay alguna forma de hacer algo similar a lo que HtmlHelper hace en las vistas de pastel: en lugar de tener que escribir la URL manualmente,...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos