如何获取已购应用程序列表,包括价格?

3

背景

我有一个小应用程序(在这里),用于显示应用列表。

最近,有人告诉我有一个应用程序(在这里)可以显示已购买应用的列表,包括它们的价格。

我测试了一下,它确实显示了所有已购买的应用,就像在 Google Play 网站上一样(在这里)。

问题和我找到的内容

我甚至不知道可能获得这样的列表,所以在我搜索互联网和这里之后,我仍然不知道是如何做到的。

我知道的全部就是,这个应用程序使用用户的身份验证,从他的 Google 帐户获取应用程序列表。

我找到的只有一些非官方库(大多数非常非常老),可以从 Play Store 获取应用程序信息,但没有任何官方的东西。

问题

  1. 可以使用哪个 API 来获取已购买应用的信息?

  2. 它能做更多吗?例如执行搜索?显示已安装的免费应用程序?它们被安装和卸载的时间?这些应用程序的类别?

  3. 使用此 API 是否有特殊要求?

3个回答

4
因为这个问题有赏金,所以我不能指向重复的问题,所以我在这里做一下。

看起来有一个帖子的答案和你能得到的一样好 here

长话短说,似乎你想要从 Google(通过 GoogleSignIn)请求权限。然后从帖子中:

如果可以获得完全访问权限,则可以找到所有由账户持有人使用的应用程序列表,并将其与设备上的内容进行比较。

然后答案继续涵盖如何查询 packagemanager 可以让您访问已安装的应用程序:

Package Manager 将检索设备上当前安装的所有应用程序的列表。 PackageInfo 提供有关应用程序的详细信息。 INSTALL_REASON_USER 还将过滤出用户主动安装的应用程序。

您可能需要查看 com.google.firebase.appindexing 和日志用户操作。不同的操作可以被跟踪。

用户账户历史记录位于 https://myactivity.google.com/myactivity

OAuth 2.0 Playground 是一个有用的链接。

我强烈建议在那个帖子上继续任何对话,因为它似乎更活跃并且有更多的赞。


2
我同意那篇帖子的答案并没有告诉你如何确切地做,也没有被采纳。如果你对原问题有什么补充,请修改我链接的帖子并在那个帖子上设置悬赏。只是为了让所有内容都在一个地方(这样就不会有两个问题问同样的事情)。我认为这就是为什么你被踩的原因,而不是因为问题本身不好。 - Kyle Venn
@KyleVenn 我不认为我能将赏金转移到另一个地方,如果我在我没有发帖的帖子上设置赏金,我也不认为我会收到有关回答的通知。 - android developer
1
无论如何,如果您有一个可行的解决方案,请发布它。您指向另一个线程中已经存在的这种通用信息而获得赏金是不公平的。 - android developer
我只有在您接受后才能获得赏金,所以您不必担心这个问题(我也不指望您会)。出于组织目的,我喜欢在一个线程上进行这个对话,这就是为什么我建议关闭这个线程,转而使用先前开启的那个线程。如果每个人的答案都在一个线程上,那么从搜索中找到它将更容易,并且对未来遇到相同问题的人更有帮助。我之所以发布了答案,是因为由于赏金的缘故,StackOverflow不允许我将其建议为重复问题。当然,如果您持不同意见,那也没关系,这只是我的个人看法。 - Kyle Venn
1
正如我所写的那样,赏金被自动授予了,尽管这个答案和其他答案一样都没有帮助到任何人 :( - android developer
显示剩余4条评论

0

针对此类查询,没有官方或非官方的API可用。如我在这里详细说明的,我已经探索了所有可能合法的访问方式,像这样的任何信息都没有合法的途径。

这篇博客文章“使用Google API的可能Android权限安全漏洞”,是我为大学毕业课题撰写的研究提案,旨在探讨API中可能存在的零日漏洞

正是对“如何从Google Play获取用户购买应用程序列表?”的回答进行调查,导致我认为这些应用程序获得访问此信息的方式可能存在问题。


但是似乎有一个官方API可以实现这个。否则,应用程序如何在使用本地登录对话框的同时完成它呢? - android developer
@androiddeveloper,他们正在获取他们不应该访问的信息。我不确定是怎么回事。如果我进一步调查,我会告诉你的。 - user3956566

-1

在查找和阅读此问题的相关信息后,我提出了一个解决方案,与常用的方法接近,用于检查您的应用是否更新,即通过比较已安装版本和发布在谷歌商店上的版本。

我知道有这个列表关于您的应用程序,当您有访问帐户权限时,因此可以创建一个爬虫来检查此页面并获取所有已购买的应用程序。


1
我不认为这个应用程序使用爬虫。它非常快,并且显示本地的登录对话框,而不是基于Web的对话框。 - android developer
哦,也许他正在使用一些隐藏的内部API,与Google Play应用程序使用的相同...我不知道,哈哈哈。 - Massita

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接