web-dev-qa-db-fra.com

interroger le Google Play Store pour la version d'une application?

existe-t-il un moyen d'interroger la version d'une application sur le Play Store sans avoir besoin d'informations d'identification de l'utilisateur? Je suis au courant de cette API non officielle:

http://code.google.com/p/Android-market-api/

mais je ne veux pas compter sur les informations d'identification des utilisateurs - je peux également visiter les sites de jeu de Google en mode incognito via Chrome -, donc cela doit être possible d'une manière ou d'une autre. Mais je n'ai trouvé aucun moyen et je ne veux pas me rabattre sur le raclage ;-)

20
ligi
14
ligi

Google Play ne fournit aucune API officielle permettant de récupérer les métadonnées. Vous pouvez toutefois vérifier l’API non officielle à l’adresse http://code.google.com/p/Android-market-api/

Plus précisément, consultez la page Wiki HowToSearchApps . La réponse à la requête contient des informations sur la version:

Votre requête sera quelque chose comme:

String query = "maps";
AppsRequest appsRequest = AppsRequest.newBuilder()
                                .setQuery(query)
                                .setStartIndex(0).setEntriesCount(10)
                                .setWithExtendedInfo(true)
                                .build();

session.append(appsRequest, new Callback<AppsResponse>() {
         @Override
         public void onResult(ResponseContext context, AppsResponse response) {
                  // Your code here
                  // response.getApp(0).getCreator() ...
                  // see AppsResponse class definition for more infos
         }
});

Votre réponse sera au format:

{
  "app": [
    {
      "rating": "4.642857142857143",
      "title": "Ruboto IRB",
      "ratingsCount": 14,
      "creator": "Jan Berkel",
      "appType": "APPLICATION",
      "id": "9089465703133677000",
      "packageName": "org.jruby.ruboto.irb",
      "version": "0.1",
      "versionCode": 1,
      "creatorId": "\"Jan Berkel\"",
      "ExtendedInfo": {
        "category": "Tools",
        "permissionId": [
...

Bien entendu, vous pouvez utiliser un analyseur JSON ou effectuer une recherche de chaîne.

0
Dheeraj Bhaskar

Consultez également: www.playstoreapi.com

C'est officieux mais facile à utiliser (gratuit pour une utilisation non commerciale). vous pouvez obtenir des données sur les applications, effectuer une recherche dans le Play Store et obtenir les données des meilleurs graphiques. de leur section de documentation:

Node.js:

var request     = require('request');
var apiKey      = 'wij5czxu3mxkzkt9'; // your API key
var packageName = 'com.whatsapp';     // package Name, e.g. com.whatsapp for WhatsApp

var url = 'http://api.playstoreapi.com/v1.1/apps/' + packageName + '?key=' + apiKey;

request({
    url: url,
    json: true
    }, function (error, response, body) {
    if (!error && response.statusCode === 200) {
        console.log(body) // Print the json response
    }
});

HTML/JS:

<html>
<head>
<body>
<p></p>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

  <script>

  var apiKey = 'wij5czxu3mxkzkt9'; // your API key
  var app    = 'com.whatsapp';     // package com.whatsapp for WhatsApp

  var url = 'http://api.playstoreapi.com/v1.1/apps/' + app + '?key=' + apiKey;

  $.getJSON(url).done(function(appDetails) {
    $('p:last').html(JSON.stringify(appDetails));
  });

  </script>
</body>
</head>
<html>

Python:

import urllib2
import json

packageName = 'com.whatsapp'      # package com.whatsapp for WhatsApp
apiKey      = 'wij5czxu3mxkzkt9'  # your API key

url = 'http://api.playstoreapi.com/v1.1/apps/{0}?key={1}'

response = urllib2.urlopen(url.format(packageName, apiKey))

data = json.load(response)   
print data

C # .NET:

string apiKey = "wij5czxu3mxkzkt9"; // your API key
string app    = "com.whatsapp";     // package com.whatsapp for WhatsApp

string url = "http://api.playstoreapi.com/v1.1/apps/{0}?key={1}";

using (var webClient = new System.Net.WebClient()) {
    string jsonString = webClient.DownloadString(string.Format(url, app, apiKey));
}
0
orcaman

Gardez à l'esprit que de nombreuses applications utilisent actuellement plusieurs versions. Pour les applications avec une version, vous pouvez essayer 42matters Lookup API , il devrait vous donner la version correcte.

0
Ivan