我需要在我的CRM(在Rails中)查看我的Android应用程序的销售统计数据,有些人建议我使用Google API,但我对所有文档感到困惑。哪种方法可以让我的CRM成为Android客户端?
答案 0 :(得分:1)
<强> 1。将您的应用上传到Google Play控制台 如果您尚未将应用上传到Play商店,则可以按照下一个指南进行操作。 https://support.google.com/googleplay/android-developer/answer/113469?hl=en
创建项目时,Play Console会将您的项目与Google Developers Console中的新项目相关联(Google Play和Google Developers控制台不同,Play是在Play商店中管理您的应用,而Developer是管理应用和服务您正在使用Google云计算,因此只需确保您的Play控制台已链接到Google Cloud控制台信息中心中访问的Google Cloud中的项目 - &gt;设置(开发者帐户) - &gt; API访问 - &gt;关联项目
检查链接项目部分a,如果按钮显示UNLINK,则表示Google Play Android Developer已准备就绪。 如果您想要自控制台管理您的Google云端项目(对于需要此步骤的测试实时通知),请在您的计算机上安装gcloud https://cloud.google.com/sdk/downloads
<强> 2。创建用户并向Rails项目授予权限 要授予对rails应用程序的访问权限,您可以创建一个服务帐户凭据,这是您需要在应用程序中设置的JSON文件,因此每次您需要将Google API与服务帐户一起使用时,您都可以创建一个令牌,存储在Google Play中的数据。此令牌每60分钟到期,因此您可以使用cron每1小时自动恢复一次,或者每当您需要访问Google API并且令牌已过期时创建一种方法来恢复它。 (在示例客户端正在使用第二个选项)
在创建任何凭据之前,请检查所选的Cloud Project是否是您需要凭据的凭据,您可以在顶部栏中查看它。旁边的Google徽标是选择要使用的项目的下拉列表。
确认您的项目,创建您的服务帐户,请遵循以下指南:https://developers.google.com/android/management/service-account
将您的JSON存储在安全的地方或您的rails应用程序中,如果您使用的是git,请不要忘记gitignore。
然后在“服务帐户”部分转到您的Google Play控制台至控制台 - >设置 - &gt; API访问,您将看到与您在云端控制台中为服务帐户提供的服务名称相同的服务和蓝色按钮与传奇&#34; GRANT ACCESS&#34;按下它设置您要为该服务提供的权限,如果它是您第一次创建服务时仅授予管理员权限进行测试,那么如果您知道客户端的限制,则可以随时更改服务帐户的权限。
完成上述操作后,您可以使用此类代码从Play Console中提取数据
require 'google/apis/androidpublisher_v2'
Androidpublisher = Google::Apis::AndroidpublisherV2
scopes = Androidpublisher::AUTH_ANDROIDPUBLISHER
authorization = Google::Auth.get_application_default(scopes)
publisher = Google::Apis::AndroidpublisherV2::AndroidPublisherService.new
publisher.authorization = authorization
publisher.authorization.fetch_access_token!
//Using Android Publisher Api get the details of a product of your app.
@product_info = publisher.get_in_app_product(params[:package]
, params[:sku])
正如您在上一段代码中所看到的,要获取产品数据,您需要从Google API获取库AndroidPublisherV2,因此您需要将您的gem文件放入:
gem 'google-API-client', '~> 0.9'
您可以在http://www.rubydoc.info/github/google/google-api-ruby-client/Google/Apis/AndroidpublisherV2
查看库中的可用方法要详细了解Google身份验证,您可以访问以下链接: https://developers.google.com/identity/protocols/application-default-credentials https://github.com/google/google-auth-library-ruby
第3。将Google Sub / Pub配置为webhook 如果您希望在用户使用InAppBilling在Android应用中获取订阅时收到实时通知,则需要使用Google Cloud Platform的SUB / PUB服务。 要开始遵循本指南:https://cloud.google.com/pubsub/docs/quickstart-console
完成指南后,如果出现类似
的错误ERROR: (gcloud.beta.pubsub.subscriptions.pull)
NOT_FOUND: Resource not found (resource=realtime-subs).
可能您在控制台上的gcloud配置正在另一个项目中运行,因此只能使用
> gcloud init
并设置默认用于创建SUB / PUB的项目。
然后继续下一个教程,分配权限并将您的Android App通知与SUB / PUB订阅相关联。 https://developer.android.com/google/play/billing/realtime_developer_notifications.html
要在控制台中提取测试通知,您可以在控制台中输入:
> gcloud beta pubsub subscriptions pull <subscription-name>
您将使用&#34; packageName&#34;识别Android的通知。值。
现在您需要创建一个SUB / PUB订阅,该订阅会将接收主题的所有通知推送到rails应用程序中的callback end-point。
首先,您将在回调中使用的域名需要在Google域名中注册,以确保您是该域名的所有者。访问https://console.cloud.google.com/apis/credentials/domainverification 然后选择“添加域”选项卡,只需按照流程显示的步骤进行操作。
如果您的rails应用程序在localhost中,您可以使用ngrok分配URL,只考虑每次重新启动ngrok时URL都会更改,您需要对新URL进行域验证。
之后,转到https://console.cloud.google.com/cloudpubsub/并在端点网址中创建一个包含推送传送类型的新订阅,并在域中设置回调网址为https(即使您尚未在其中设置https)域名它可以工作,但如果你正在制作,请避免这种做法,请在你的域中设置一个SSL)
现在,您的Rails应用程序将收到您的应用在Google Cloud Platform中发送给您主题的所有通知。
可以使用client sample in Sinatra作为ruby客户端的示例。