的故事:我正在制作一个安卓应用程序,允许用户购买订阅,而不要求用户有一个帐户或登录。我想检查用户是否购买了订阅和Google Android Developer API似乎提供了这项服务。。
问题(TL;DR):应该使用OAuth作为"web应用程序“、”已安装的应用程序“、”服务应用程序“,还是不使用上述任何一种?
的问题:开始做这个,我被告知:
对Google的访问是使用OAuth 2.0WebServer流进行身份验证的。在使用该API之前,您需要设置一个API控制台项目,创建一个客户机ID并生成一个刷新令牌。-source
当然可以。然后,有一些设置说明继续说:
在第二个页面上,选择web应用程序并设置重定向URI和Javascript源。
我的应用程序确实可以访问互联网,但它是一个已安装的Android应用程序,而不是一个web应用程序,所以我没有一个“重定向URI”或"Javascript源“来链接它。此外,这将需要用户登录,我不想这样做,在我的情况下也是不必要的(我只想检查用户是否购买了订阅)。
因此,如果我尝试创建一个“已安装的应用程序(Android)”而不是一个"web应用程序“,这仍然需要一个用户登录,以便能够管理用户的资源。
我不想这样。第三种选择称为“服务帐户”,它不需要用户登录:
当您有一个服务想要处理它的“自己”资源(例如,管理计算引擎资源的App应用程序),而不是外部用户的资源(例如,标准OAuth流)时,就会使用服务帐户。使用服务帐户,应用程序将是资源的所有者.如果您使用服务帐户,您将只获得有关服务购买的数据。-source
我不确定这是不是我想要的.
最后,还有这样的选择:
最简单的流程是不需要最终用户授权的流程。您仍然需要使用API键标识客户端应用程序。-source
这看起来很完美!然而,我最初被告知,要使用Google,我需要使用OAuth 2.0进行身份验证,而这并不使用最初告诉我需要的客户机ID。
发布于 2012-09-12 07:22:34
在这里,你要达到的目标至少有两个问题:
谷歌推荐您需要一个后端服务器来执行这种检查。因此,您可以在将内容移交给客户端之前决定订阅是否有效:
API设计用于从后端服务器中安全地管理订阅,以及扩展订阅并与其他服务集成。
如果没有可用的后端服务器,则必须依赖应用内计费通知。
https://stackoverflow.com/questions/12373914
复制相似问题