Je suis chargé de développer un site web qui devrait être en mesure d'afficher les statistiques du magasin d'applications d'Apple et de Google Play Store aux clients, afin qu'ils puissent facilement voir ce qui se passe.
J'ai trouvé quelques moyens d'obtenir les données de l'App Store, mais les statistiques des développeurs de Google Play semblent beaucoup plus difficiles à obtenir.
J'ai entendu parler du scraping, mais ce n'est pas une bonne solution, car il serait probablement cassé à chaque mise à jour majeure de la console des développeurs.
Je cherche quelque chose qui fonctionnerait comme Andlytics ou App Annie, par exemple, de sorte que je puisse obtenir des données avec AJAX ou autre (format JSON peut-être ?) et les mettre dans une base de données.
Pour l'instant, je n'ai pas trouvé de solution fiable (à part le scraping, qui semble être une solution instable), et cette question a été posée il y a un certain temps, donc je me permets de la poser à nouveau, car peut-être qu'il existe maintenant des solutions pour contourner ce problème.
Tout ce que j'ai pu trouver, ce sont les API de Google Play, qui me permettent de récupérer des données depuis la page publique de l'application, mais pas depuis la console des développeurs, avec authentification.
Tout conseil ou aide sera grandement apprécié :)
0 votes
La console de développement utilise une API JSON non documentée pour communiquer avec les serveurs de Google. Vous pouvez voir les requêtes et découvrir les URL à l'aide des outils de développement de Chrome. Ce n'est pas trivial, mais c'est mieux que le grattage, et plus que probablement, cela restera stable plus longtemps.
0 votes
Merci pour cette réponse rapide 323go ! Mais il y a une question qui reste sans réponse pour moi : comment suis-je censé faire l'authentification qui me permettrait de me connecter au compte ? Je suppose que je vais en avoir besoin pour accéder aux services web et récupérer des données... S'agit-il d'un jeton ? Je n'en ai aucune idée. En tout cas, merci pour l'indice, je pense que je vais finir par travailler sur quelque chose d'approchant, si rien n'est déjà fait quelque part dans une API cachée dont je n'ai pas entendu parler.
0 votes
On dirait qu'il utilise le standard accounts.google.com/ServiceLoginAuth Plus d'informations ici : developers.google.fr/accounts/docs/GettingStarted
0 votes
Merci pour votre aide. J'ai regardé Oauth 2, et j'ai essayé l'API officielle PHP pour l'authentification Google. Après quelques essais cependant, je n'ai pas encore trouvé le moyen de demander des autorisations pour accéder au compte Google Developers. Dans cette API, j'essaie d'utiliser ( code.google.com/p/google-api-php-client/wiki/OAuth2 ), seuls quelques services Google sont mis en œuvre, tels que Analytics ou Adsense. Lorsque j'essaie les exemples, cela fonctionne bien pour ces autorisations (les tokens demandés sont pertinents à chaque fois) mais je ne sais pas comment je pourrais faire une telle chose pour accéder à la console Developers...
0 votes
Maintenant, je pourrais avoir obtenu l'accès aux développeurs google play dashboard, mais je ne suis toujours pas sûr. Quoi qu'il en soit, je voulais tester si je pouvais récupérer certaines données, pour ce faire, j'ai imité les requêtes POST qui sont utilisées sur la console des développeurs pour apporter des statistiques JSON, la requête POST utilise l'URL suivante : play.google.fr/apps/publish/v2/statistiques + un paramètre dev_acc, que j'ai déjà rempli. Étonnamment, cette URL n'existe pas, et m'apporte une erreur 404 chaque fois que j'essaie de faire une requête POST avec elle... Je suis un peu perdu maintenant
0 votes
Avez-vous essayé de poster en https ou en http ?
0 votes
J'ai donc essayé une autre façon de faire fonctionner ce projet (je n'ai pas vu votre commentaire plus tôt, et j'en suis désolé) en lisant un peu le projet Andlytics. Pour l'instant, j'ai réussi à obtenir une valeur obligatoire pour l'authentification, que je pourrais récupérer dans un Cookie (après avoir fait une demande GET à la page de connexion de la console de développement) et maintenant, en suivant les directives de l'application Andlytics, j'essaie de faire la bonne demande POST, afin que je puisse envoyer les paramètres d'authentification avec cette valeur spécifique. Pour l'instant, cela ne fonctionne pas, mais je vous tiendrai au courant...
0 votes
Grand progrès, Selphira. Si vous parvenez à le faire fonctionner, pensez à le placer sur GoogleCode - cela pourrait être utile à beaucoup.
0 votes
Je l'ai fait ! J'ai pu obtenir la liste des applications et quelques données connexes, à partir de la console du développeur ! Comme c'est un JSON, je vais devoir le parser maintenant. Et oui, j'envisage, une fois que j'aurai un code plus propre et plus complet, de faire une documentation et de mettre cela en ligne quelque part (je ne sais pas si Google aimerait cela, cependant, alors j'ai pensé à GitHub, de plus, j'ai reçu de l'aide d'ici, donc ce serait une façon de contribuer) J'ai dû faire beaucoup d'essais pour obtenir ces fichues données, et cela pourrait aider certaines personnes à ne pas perdre autant de temps que moi.
0 votes
Je ne pense pas que cela dérangerait Google, puisqu'ils hébergent déjà code.google.com/p/Android-market-api sans aucun retour de bâton. Du moment que tu dis que c'est non officiel. Si vous voulez, je peux nettoyer ce que vous avez et le transformer en lib.
1 votes
Ce serait génial ! Je reviendrai sur ce post quand j'aurai une version plus aboutie (pour l'instant je n'ai collecté que quelques données avec deux POST après authentification donc il y a encore pas mal de choses à faire, et je réfléchis encore au bon modèle d'objet de sortie que je devrais choisir) Mais je suis sur la bonne voie !
0 votes
Salut Selphira, j'ai la même tâche devant moi, et je me demande ce qu'il faut faire. Pourriez-vous s'il vous plaît poster un code qui pourrait m'inspirer. Merci d'avance
2 votes
Bonjour, j'ai réussi à faire fonctionner le script, mais quelqu'un m'a dit récemment qu'en raison de certains changements majeurs dans le service de Google, il ne fonctionne pas correctement en ce moment. Donc, il a actuellement besoin de quelques corrections. En outre, j'ai fait un pseudo-tutoriel et l'ai posté ici, mais ma réponse a été supprimée parce qu'il s'agissait "simplement d'un lien externe"...
0 votes
@Selphira, pouvez-vous me dire quelle portée vous avez utilisée dans votre OAuth2 pour accéder à la Console du développeur ? Merci beaucoup.
1 votes
@BabakBandpay En fait, j'utilise une méthode d'authentification complètement différente, puisque Oauth2 ne nous permet pas de nous authentifier via le service de la console de développement, je le fais à partir de zéro, en envoyant 3 requêtes HTTP : 1) Un GET vers la page d'authentification, pour collecter les cookies et autres informations dont nous avons besoin 2) Un POST utilisant ces valeurs + mes identifiants de connexion, pour obtenir les variables xsrftoken et developersconsoleaccounts 3) Ensuite, nous pouvons faire des requêtes POST, en utilisant ces deux données que nous avons obtenues, et récupérer par exemple la liste des applications, etc.
1 votes
@BabakBandpay Je pourrais donner plus de détails car il y a pas mal de réglages à faire pour que ces requêtes fonctionnent correctement, mais je ne pense pas que les commentaires soient le bon endroit pour le faire. De plus, j'utilise cURL pour envoyer les requêtes.
0 votes
@Selphira, merci beaucoup pour les réponses. J'envisage maintenant une méthode de grattage.
0 votes
@BabakBandpay vous donnez trop de prime qui sera perdue si aucune réponse ne vous satisfait . ^^
0 votes
@AhmadAzwarAnas, vraiment ? ils vont disparaître ?
0 votes
@Greensy, merci, je vais y jeter un œil.
0 votes
@Babakbandpay vous pouvez me dire plus tard si ce n'est pas ^^
0 votes
@Selphira Une mise à jour ? Même un code incomplet m'aiderait. J'ai fait l'aller à la page d'authentification, stocké les cookies, mais le Post + login credentials me donne encore des problèmes. Quels paramètres devez-vous renvoyer en plus des cookies et du nom d'utilisateur/mot de passe ?
1 votes
@Innova Après avoir fait le premier appel GET, vous devriez avoir les données suivantes prêtes : le nom d'utilisateur et le mot de passe du compte, les cookies stockés depuis le GET précédent (j'utilise personnellement CuRL), la valeur GALX, qui peut être récupérée à l'intérieur de votre fichier de stockage des cookies (c'est en fait un des cookies que vous venez de récupérer).
1 votes
@Innova La requête a pour moi la forme suivante : curl_setopt($ch, CURLOPT_URL, $authUrl) ; curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiePath) ; curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiePath) ; curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false) ; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; curl_setopt($ch, CURLOPT_POST, 4) ; curl_setopt($ch, CURLOPT_POSTFIELDS, "Email=" . $account['username'] . "&Passwd=" . $account['password'] . "&GALX=" . $galxValue . "&continue=" . $consoleUrl) ; curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true) ;
0 votes
@Innova AuthURL = même URL que celle utilisée pour le GET, sauf que c'est ServiceLoginAuth au lieu de ServiceLogin (la dernière fois que j'ai vérifié, c'était comme ça) consoleUrl = URL de la console du développeur (elle change souvent, de toute façon mettez ici l'URL où vous voulez continuer après la requête) Faites-moi savoir si vous arrivez à le faire fonctionner, n'hésitez pas à poser d'autres questions si nécessaire !
1 votes
Quelqu'un peut-il me répondre, comment obtenir la permutation. Je suis frappé par l'étape de permutation. Je peux voir qu'elle reste constante pour le compte. Mais quand j'ai essayé d'envoyer la même chose avec ma demande. Je reçois une réponse cryptée. J'ai essayé de la décoder en utilisant différentes fonctions d'encodage mais en vain.
0 votes
@Selphira Avez-vous de la documentation ou des exemples de code sur la connexion et l'obtention d'applications à partir de la console Google Play developer ?
0 votes
@Selphira J'ai trouvé votre tutoriel. Merci beaucoup pour votre travail !
1 votes
@kapa89 Je suis contente que vous ayez pu le trouver, il date un peu maintenant mais j'espère qu'il vous aidera !
0 votes
@Selphira..pourriez-vous me faire connaître la procédure à suivre pour obtenir les données de l'AppStore ?
0 votes
@Selphira..pourriez-vous me faire connaître la procédure à suivre pour obtenir les données de l'AppStore ?