Obtener versión de aplicación en Google Play Store con PHP

¿Como estáis?

 

He decidido publicar este pequeño código que evitará que mas de un desarrollador de Android se rompa la cabeza como hice yo. En mi actual empresa llevo el desarrollo de dos aplicaciones para Android y para ellas quería hacer ese típico mensaje de “Existe una nueva versión de la aplicación en Google Play” al iniciar la app en caso afirmativo y resulta que el propio Google no te da la opción de forma nativa de consultar esta información (si, WTF?).

Bueno decidí hacer un PHP que realizase una consulta a la ficha de una aplicación en Google Play para obtener la versión y mostrarla en formato JSON y la voy a compartir con vosotros. Este es el código PHP para hacer eso, a parte, podéis modificarlo para sacar mas información a parte de la versión, como podría ser las notas de la actualización, la descripción, etc. Como siempre, el límite es vuestra imaginación.

 

Este sería el código PHP:

GooglePlayVersion.php
 
<?php
$app = $_GET['app'];
$dom = new DOMDocument();
try{
      $opts = array(
        'http'=>array(
            'method'=>"GET",
            'header'=>"Accept-language: es\r\n" .
                          "User-Agent: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.102011-10-16 20:23:10\r\n"
        )
      );
      $context = stream_context_create($opts);
      $html = file_get_contents('https://play.google.com/store/apps/details?id=' . $app,false,$context);
      @$dom->loadHTML($html);
}catch(Exception $e){
      echo 'Error: ' . $e->getMessage();
      header('HTTP/1.0 404 Not Found');
}
$a = $dom->getElementsByTagName('div');
$nodes = array();
for ($i; $i < $a->length; $i++) {
      $attr = $a->item($i)->getAttribute('itemprop');
       if ($attr != 'softwareVersion') {
        continue;
    }
      $nodes[$attr] = $a->item($i)->textContent;
}
if(count($nodes) == 0){
      header('HTTP/1.0 404 Not Found');
}
echo json_encode($nodes);
?>

 

¿Modo de uso? Muy sencillo.

Tengo este PHP subido a mi web para que podais usarlo en caso de que lo necesiteis y no dispongais de hosting para ello.

Suponed que somos los desarrolladores de esta aplicación y necesitamos saber en que versión está en cada inicio de la app, comparando esta versión con la instalada en el terminal. Nos tendremos que fijar en el nombre del paquete de la app, que aparecerá en la barra superior de direcciones:

 

El nombre del paquete será com.sega.cityrush. Esta es la única información que necesitamos. Veamos como hacer la petición al script PHP para los mas novatos en este lenguaje.

Accedemos a la tool con esta URL http://diariodeunexploit.com/tools/GooglePlayVersion.php?app=com.sega.cityrush

Que respuesta tenemos? El objeto JSON con dicha información:

 

Es importante que en caso de que cambien el HTML de la web de  Google Play es posible que tengais que modificar el script PHP para que funcione.

 

Pasad un feliz lunes!

 

Matías Moreno Cárdenas

Publicado por: Matías Moreno Cárdenas

Analista de Seguridad IT y hacking ético / Desarrollador de Software Multiplataforma. Actualmente analista de seguridad informática y hacking ético en Grupo SIA

Deja un comentario

Press Ctrl+C to copy the following code.
"