gpt4 book ai didi

android - 如何从 Google Play 获取用户下载的应用程序(付费/免费)列表?

转载 作者:IT老高 更新时间:2023-10-28 13:00:51 26 4
gpt4 key购买 nike

我最近发现了这个应用程序 Purchase Apps ,在我使用我的谷歌帐户登录后,它能够以某种方式检索我在谷歌游戏中支付的应用程序。

我正在尝试了解它是如何完成的,因为我想构建一个类似的应用程序,但对于已下载的免费应用程序。

但是,我找不到用于检索该信息的 OAuth API 范围,即使在通过 the entire list of APIs 之后也是如此。 .

Google Sign in asking for access to androidmarket


编辑:正如我问过的关于 here 的类似问题所建议的那样,我正在对这个问题提出新的赏金。 ,并且因为在这里和那里我没有看到关于如何做到这一点以及可以用它做什么的真正答案。

我想将问题细化为多个部分:

  1. 什么API可以用来获取已购买应用的信息?我在哪里可以读到它?请展示一个完整的工作示例。

  2. 它还能做得更多吗?也许执行搜索?也许显示已安装的免费应用程序?也许是安装和卸载它们的时间?以及这些应用的类别?

  3. 使用此 API 有什么特殊要求吗?


编辑:我为此付出了最大的赏金,因为无论我阅读和尝试了多少,我仍然无法创建一个可以从 Play 商店查询用户曾经下载过的应用程序的 POC(名称、软件包名称、安装和/或删除日期、图标 URL、价格...),包括付费和免费应用程序。

如果有人找到了一个可行的示例,请说明它是如何完成的,并说明您是如何找到它的(文档或任何帮助您找到解决方案的东西)。我在任何地方都找不到它,而且这里的当前解决方案对我来说太模糊了。

最佳答案

问题已解决。该漏洞利用已关闭。

We will be closing this bug due to being logged in a Preview version of Android. If the issue is still relevant and reproducible in the latest public release (Android Q), please capture a bugreport and log the bug in https://source.android.com/setup/contribute/report-bugs. If a reply is not received within the next 14 days, this issue will be closed. Thank you for your understanding.


最新更新:

这是一个错误,Google将在下一次更新中解决。

We've deferred this issue for consideration in a future release. Thank you for your time to make Android better


这个答案已经变成了一个想法的集合,并被编辑以在评论中包含来自讨论的信息。

androidmarket api,将是自定义的 api开发商写的。它不向公众开放。

在评论中解决您的疑虑。开发人员将利用 Android Developer 和 Google 提供的当前 API 来创建一个管理所有这些的项目。

至于访问完整帐户访问权限,我不确定这些开发人员究竟是如何做到这一点的。

我建议使用 AccountManager ,它是 android.accounts 的一部分,可以访问凭据和方法 getUserData .帐户管理员有权访问密码,并能够创建和删除帐户。这可能与 Content Provider 一起使用

Udinic/SyncAdapter Authentication .

回复您的评论:

此博客应该可以帮助您入门。 Write your own Android Authenticator .


这些应用程序实际上是如何工作的,我无法告诉你。它们也可能有不同的实现(除非它们是幕后的协作,否则它们肯定会有所不同)。

一个猜测。首先使用GoogleSignInAccountcom.google.android.gms.auth.api.signin .

scope 的定义, 以确定授予应用程序的权限范围。

使用 requestScopes() ,

public static final String PROFILE

.../ It lets your web app access over-the-air Android app installs.

对于 example :

GoogleSignInOptions gso =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail().
.requestScopes(new Scope("https://www.googleapis.com/auth/contacts.readonly"))
.build();

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

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

您可能想查看 com.google.firebase.appindexingLog User Actions .不同actions可以被追踪。

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

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


这个 github 仓库 node-google-play ,使用节点,是最新的,将调用 Google Play API。与用作“非官方” api 的存档一样,android-market-api , 查询市场。


应用 1

app claims使用以下权限:

Version 2.1.8 can access:
$ In-app purchases

Other

  • receive data from Internet
  • view network connections
  • full network access
  • use accounts on the device
  • prevent device from sleeping
  • read Google service configuration

值得注意的是,该应用在进行基本安装时不会设置任何权限。我无法使用任何功能,因为我没有付费应用程序。因此,对于初始搜索 - 不需要权限,这表明该应用无权访问我的帐户。

我检查了权限 - 没有设置。因此,唯一需要做的就是接受弹出窗口,如您的问题中所示。


应用 2

您提到的另一个执行相同操作的应用程序更预先了解正在访问的内容。

My Paid Apps

SECURITY/PRIVACY NOTICE
The first time you run this app, it will ask for full permission to your Google account. This is unfortunately the only way to access the required information. No personal information is stored, no information about your apps is shared with the developer of this app, nor shared with any third parties. Everything is kept on your phone only.


我已在 this blog post 中详细介绍了这些应用程序。 ,这是一个大学顶点项目(没有金钱 yield )。我倾向于认为这是 API 中的一个漏洞,而不是谷歌设计的状态,因为除了开发者自己的应用程序之外,没有任何 API 调用来获取应用程序的购买。我假设这是一个零日漏洞,在这种情况下,没有合法的方法可以访问这些信息。

关于android - 如何从 Google Play 获取用户下载的应用程序(付费/免费)列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46050134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com