gmKEY(), Obtención automática de la API KEY de Google Maps con PHP
Que hoy en día el posicionamiento con google maps es algo fundamental en muchas aplicaciones es algo indiscutible, y que es algo que muchas veces necesitamos incorporar en aplicaciones que exportamos a varios servidores es algo que nos pasa a menudo.
Para los que no estén muy duchos en el tema, la utilización de la API de google maps para poner estos mapas de forma "automática" requiere de una clave de autorización personalizada para el servidor o el directorio del servidor especifico por lo que debemos enseñar al usuario como obtener esa key cada vez que queremos exportar un código.
Como ya había dicho esto es un engorro que a partir de ahora nos podremos realizar de forma automática.
Para obtener una API-KEY se necesita una cuenta de google (vale una gmail) y una dirección (la dirección donde colgaremos el mapa).
La siguiente función necesita esos mismos parámetros para funcionar.
El 1º es el nombre de usuario (dirección completa… con "@gmail.com" y todo), el 2º la clave de la cuenta, y el 3º la dirección para la que queremos obtener la key.
El ultimo parámetro es opcional, ya que si no se pone nada se buscará la key del servidor en el que se ejecuta la función en ese mismo momento.
-
function gmaps_apikey($username, $password, $url=null){
-
-
// create cookie file temp
-
$postdata = 'Email='.$username.'&Passwd='.$password.'&GA3T=5AS_gBsvDHI&nui=15&'.'fpui=3&service=reader&ifr=true&askapache=lovesgoogle&rm=hide&itmpl=true&hl=en&alwf=true&continue=&null=Sign in';
-
-
$ch = curl_init("https://www.google.com/accounts/ServiceLoginBoxAuth");
-
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
-
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
-
curl_setopt ($ch, CURLOPT_COOKIEJAR, $google_cookie);
-
curl_setopt ($ch, CURLOPT_COOKIEFILE, $google_cookie);
-
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
-
curl_setopt ($ch, CURLOPT_POST, 1);
-
$askapache_curl_google_result = curl_exec ($ch);
-
curl_close($ch);
-
-
$ch = curl_init('http://maps.google.com/maps/api_signup?url='.$url);
-
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
-
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
-
curl_setopt ($ch, CURLOPT_COOKIEJAR, $google_cookie);
-
curl_setopt ($ch, CURLOPT_COOKIEFILE, $google_cookie);
-
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
-
curl_setopt ($ch, CURLOPT_POST, 1);
-
$askapache_curl_google_result = curl_exec ($ch);
-
curl_close($ch);
-
-
$ini = '<pre class="code">';
-
$fin = '</pre>';
-
$exp_info = '!'.$ini.'(.+)'.$fin.'!U';
-
return $out[1][0];
-
}
Para completar esto siendo lo mas legal posible he creado una función adicional que podemos o no utilizar, la cual da como resultado el texto legal de google para la utilización de su API. Para no violar los términos de esta API deberíais utilizarla antes de utilizar la función anterior.
Su uso es muy sencillo.. Solo hay que poner el acrónimo del idioma en el que se desea que salga el texto. Si no se pone nada el texto se pone como predeterminado en Español. Los acrónimos permitidos son: 'en', 'es', 'zh-CN', 'pt-BR', 'ru' y 'ja'.
-
function gmaips_legal($lang='es'){
-
$url = in_array($lang, $langs) ? 'http://code.google.com/intl/'.$lang.'/apis/maps/signup.html' : 'http://code.google.com/apis/maps/signup.html';
-
$contenido = str_replace(array('<textarea rows="15" cols="70" readonly="readonly" onfocus="this.blur()">'."\n", '</textarea>'), array($ini, $fin), $contenido);
-
return $out;
-
}
Ahora un par de ejemplos para terminar.
Ejemplo de obtención de la ApiKey del servidor en el que se ejecuta la función.
-
<?
-
?>
Ejemplo de obtencion de la ApiKey de un servidor especifico:
-
<?
-
?>
Ejemplo de muestra del texto legal en español:
-
<?
-
?>
Ejemplo de muestra del texto legal en ruso:
-
<?
-
?>
Como siempre espero que os sea de utilidad, y para fallos o correcciones ya sabéis.. comentarios..
Comparte este artículo
Licencia de los contenidos
© Todos los derechos reservados