20

有没有一种方法可以在不需要用户凭据的情况下查询应用程序版本的 Play 商店。我知道这个非官方的 API:

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

但我不想依赖用户凭据——我也可以通过 chrome 以隐身模式访问 google play 网站——所以它必须以某种方式成为可能。但我没有办法,我不想回退到刮;-)

4

4 回答 4

14

通过 G+ 找到了合适的 API:这是 API:https ://androidquery.appspot.com

示例调用:https ://androidquery.appspot.com/api/market?app=org.ligi.fast

这个包装器/代码:https ://github.com/androidquery/androidquery

于 2013-01-24T22:36:26.547 回答
2

Google Play 不提供任何用于检索元数据的官方 API。但是,您可以在http://code.google.com/p/android-market-api/查看非官方 API 。

具体来说,请查看 Wiki 页面HowToSearchApps。对查询的响应包含版本信息:

您的查询将类似于:

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
         }
});

您的回复将采用以下格式:

{
  "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": [
...

然后当然你可以使用 JSON Parser 或进行字符串搜索。

于 2013-01-23T00:20:29.647 回答
0

另请查看: www.playstoreapi.com

它是非官方的,但易于使用(非商业用途免费)。您可以获取有关应用程序的数据、搜索 Play 商店并获取热门图表数据。从他们的文档部分:

节点.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));
}
于 2014-04-17T06:45:59.747 回答
0

请记住,如今许多应用程序都在运行多个版本。对于只有一个版本的应用程序,您可以尝试42matters Lookup API,它应该为您提供正确的版本。

于 2016-04-01T15:11:00.523 回答