2011-04-16 29 views
5

Necesito obtener el token de Google válido para usar las API de Google, pero mi código no funciona. ¿Podrías por favor aconsejarme?Obtener Google API Token

$client_id = '495225261106.apps.googleusercontent.com'; 
$client_secret = urlencode('MY_SECRET_CDE'); 
$redirect_uri = urlencode('http://MYPAGE.net/test.php'); 
//$grant_type = urlencode('authorization_code'); //it does not work either. 
$grant_type = 'authorization_code'; 

$post_string = "code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp6&client_id={$client_id}&client_secret={$client_secret}&redirect_uri={$redirect_uri}&grant_type={$grant_type}"; 

//echo_key_value('post_string',$post_string); 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, 'https://accounts.google.com/o/oauth2/token'); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$result = curl_exec($ch); // Execute the HTTP command 
$errmsg = curl_error($ch); 

if($errmsg) echo $errmsg; 

// de salida: { "error": "invalid_grant"} //

Gracias!

+0

Estoy tratando de implementar esto en Javascript pero corriendo en el mismo error. Intenté usar Curl desde la línea de comandos y todavía no tuve suerte. He seguido las instrucciones en [esta página] (http://code.google.com/apis/accounts/docs/OAuth2.html) a un T. – Abe

Respuesta

1

Puede que le resulte más fácil usar las API de Google, especialmente OAuth, a través de una de las bibliotecas oficiales del cliente.

Aquí hay un enlace a la PHP uno: http://code.google.com/p/google-api-php-client/

y un enlace a la documentación de OAuth 2.0 con la biblioteca (con un gran código de ejemplo): http://code.google.com/p/google-api-php-client/wiki/OAuth2

+0

Tengo el mismo problema, concesión no válida, estoy publicar los datos con un navegador para fines de depuración. Usar su biblioteca no explica por qué aparece el error –

1

No tiene que poner "curl_setopt ($ ch, CURLOPT_POST, true);" antes de usar los campos posteriores? El mío funciona y excepto eso y no usé urlencode en mi secreto, es el mismo

Cuestiones relacionadas