2012-05-13 49 views
6

Estoy codificando un código de importación de contactos de Google para una red social. Esta importación se realiza en la página del usuario y la URL varía de un usuario a otro. perfil/usuario1, perfil/usuario2URL de redirección de Google API dinámica

Sin embargo, con google parece ser capaz de establecer solo una URL de redireccionamiento y no puedo encontrar ninguna mención de google permitiendo que los comodines coincidan con el dominio en lugar de la url particular.

¿Hay alguna manera de hacerlo o tendré que dejarlo configurado en una url?

Gracias de antemano.

Respuesta

12

Tengo el código PHP para lograrlo. Es un error decir que no se puede hacer. Utilicé esta técnica para Analytics, Adwords, Google+ y YouTube. Funcionó con todos los servicios mencionados.

Truco es utilizar el parámetro "estado" para ser utilizado como URL dinámico. Espero que ayude a todos.

// Auth URL 
// $campaign_id will be different for everyone 
$dynamic_redirect = 'http://' . $_SERVER['HTTP_HOST'] . "/analytics/$campaign_id"; 
$client_id = 'XXXXXXXX'; 
$redirect_uri = 'API_REDIRECT_URI'; // Fixed URL, it will not be changed 

$auth_url = "https://accounts.google.com/AccountChooser?service=lso&continue="; 
$auth_url .= urlencode("https://accounts.google.com/o/oauth2/auth?response_type=code&scope=https://www.googleapis.com/auth/analytics.readonly&access_type=offline&redirect_uri=$redirect_uri&approval_prompt=force&state=$dynamic_redirect&client_id=$client_id"); 


/*************************************/ 
API_REDIRECT_URI PAGE 
/*************************************/ 
$redirect_url = $_GET['state']; 
+0

Hola, Ok, fue hace mucho tiempo, pero cambié al tuyo. –

6

He encontrado que esto no es posible, por lo que si alguien está buscando esto, no hay forma. Terminé arreglando mi problema simplemente dejando que google redirija a una URL fija, por lo que no es una dinámica.

+1

Usted pasa la parte dinámica como el parámetro "estado" como @ fraz-ahmed mencionado. La URL de redireccionamiento incluirá este valor de estado como un parámetro de consulta. Puedes codificar lo que necesites en el estado. – philidem

1

Puede hacer una cosa simple. Ponga "url de página de usuario" en sesión al crear Auth URL. En su página de Devolución de llamada, obtenga la "URL de la página de usuario" de la sesión y redireccione a los usuarios a esa página.

Pude lograr lo anterior usando PHP con éxito.

+0

¿podría compartir algún código de ejemplo sobre cómo se envía la URL de la página de usuario y recibirla en la respuesta, por favor? Tal vez en pastebin, gracias – Anagio

+0

@anagio compruebe mi nueva respuesta para el código: [link] (http://stackoverflow.com/questions/10569795/dynamic-google-api-redirect-url/19382579#19382579) –

+0

Por el En mi nueva respuesta, incluso no necesitamos ninguna SESIÓN. Todo es dinámico. –

Cuestiones relacionadas