2011-10-13 13 views
9

Tengo una aplicación de producción y ocasionalmente veo este error aparecer en los registros. Parece que no puedo duplicarlo en mi extremo, por lo que parece que hay un usuario fuera hay algún lugar con algunas configuraciones/cookies/etc específicas que están causando este problema. No estoy seguro ... El registro muestra que este usuario se redirigirá a esta URL de devolución de llamada: "usuarios/auth/facebook/devolución de llamada código = AQCayaAoFOruFgwbfg1D682j8DbxOt0CZYNH3Vv5RtYKlQgSzISyN8ygTn25W_RTl3fu35cS1-tl5ArZ9B_XylwORP0hGU6st8P6TyTYUzfiR1m0poaSRkX-KBeWiBvT6IUsm-Af0VJcUNTQPg-dM1F9y5CgJ2bTJEJqhCE9wYlvkUY3kguwcl3TQ48FTT4-PHA ///?"OAuth "Formato de código de verificación no válido"

el error real es:

RuntimeError: #<OAuth2::Response:0x1da7fae0 @error=#<OAuth2::Error: OAuth2::Error>, @options={:parse=>:query}, @parsed={"{\"error\":{\"message\":\"Invalid verification code format.\",\"type\":\"OAuthException\"}}"=>nil}, @response=#<Faraday::Response:0x1da8fa80 @on_complete_callbacks=[], @env={:response=>#<Faraday::Response:0x1da8fa80 ...>, :request_headers=>{"Content-Type"=>"application/x-www-form-urlencoded"}, :body=>"{\"error\":{\"message\":\"Invalid verification code format.\",\"type\":\"OAuthException\"}}", :status=>400, :url=>#<Addressable::URI:0xed52bf0 URI:https://graph.facebook.com/oauth/access_token>, :request=>{:proxy=>nil}, :parallel_manager=>nil, :response_headers=>{"expires"=>"Sat, 01 Jan 2000 00:00:00 GMT", "access-control-allow-origin"=>"*", "content-type"=>"text/javascript; charset=UTF-8", "connection"=>"close", "www-authenticate"=>"OAuth \"Facebook Platform\" \"invalid_code\" \"Invalid verification code format.\"", "date"=>"Thu, 13 Oct 2011 15:58:29 GMT", "content-length"=>"81", "cache-control"=>"no-store", "x-fb-rev"=>"457598", "x-fb-server"=>"10.65.13.60", "pragma"=>"no-cache"}, :ssl=>{:ca_file=>"/etc/pki/tls/certs/ca-bundle.crt"}, :method=>:post}>> 

y los parámetros fueron:

{"code"=> "AQCayaAoFOruFgwbfg1D682j8DbxOt0CZYNH3Vv5RtYKlQgSzISyN8ygTn25W_RTl3fu35cS1-tl5ArZ9B_XylwORP0hGU6st8P6TyTYUzfiR1m0poaSRkX-KBeWiBvT6IUsm-Af0VJcUNTQPg-dM1F9y5CgJ2bTJEJqhCE9wYlvkUY3kguwcl3TQ48FTT4-PhA///", 
"action"=>"", 
"controller"=>""} 

sé que si voy manualmente a "usuarios/auth/facebook/devolución de llamada código = bla?" se disparará camisetas su mismo error porque el parámetro de código de devolución de llamada es obviamente falso, pero no parece que haya nada sospechoso sobre el código real en hash de params del usuario, así que me pregunto por qué sería un formato no válido.

¿Alguien más ha experimentado esto?

+0

¿encuentra alguna solución? –

Respuesta

-1

creo que el siguiente enlace proporciona la respuesta: http://developers.facebook.com/docs/authentication/#authenticating-users-in-a-web-application

Primero tiene que llamar https://graph.facebook.com/oauth/authorize con su client_id y redirect_uri. Esto lo redirigirá nuevamente a redirect_uri, con un código de verificación en la cadena de consulta que puede pasar a su llamada https://graph.facebook.com/oauth/access_token (a través del parámetro de código) para intercambiar por un token de acceso oAuth.

¡Buena suerte! :)

Cuestiones relacionadas