【问题标题】:Is it possible to create Service account and get p12 key programmatically for google accounts?是否可以为 Google 帐户创建服务帐户并以编程方式获取 p12 密钥?
【发布时间】:2017-04-24 05:46:23
【问题描述】:

我需要通过它的 API 提取 Google Analytics 数据。但是我不想手动生成任何帐户和密钥(原因是我不想让任何非技术人员执行此技术)并希望转储该数据以进行分析。

【问题讨论】:

    标签: google-analytics google-oauth google-analytics-api service-accounts google-developers-console


    【解决方案1】:

    为了使用任何 Google API,他们需要知道您是谁。您作为开发者的身份由您在 Google Developer Console 上创建的项目标识。创建项目后,您可以创建许多不同类型的凭据,包括服务帐户凭据和 Oauth2 凭据。

    回答:不,无法以编程方式创建服务帐户凭据。如果不先在 Google 开发人员控制台上创建项目,也无法使用 Google api。

    注意:Google Cloud Resource Manager 确实存在,但它允许您做的事情非常有限。

    如果其他人要运行您的应用程序来访问他们的 Google 分析数据,您最好在您的应用程序中使用 Oauth2 而不是服务帐户。

    服务帐号旨在让开发者授予其他人访问相关开发者拥有的数据的权限。它们并不是真正打算让新手用户在谷歌开发者控制台上创建自己的项目并生成凭据。

    【讨论】:

    • 太棒了!谢谢! @DaImTo 供您注意、建议和回答 :) 现在有太多的问题在我脑海中嗡嗡作响...一个是 我如何使流程自动化或减少手动步骤(即生成客户端机密或启用 API,允许客户端- ids 只需提示登录弹出窗口即可访问数据) 用于定期获取数据而无需任何手动干预。我很惊讶,因为compass.co 只要求登录帐户以获取分析数据(GA 将插入 compass.co 帐户)......就是这样,我得到报告。
    • 一旦用户验证您保存刷新令牌,您就可以随时访问他们的数据,提示登录是 Oauth2。除非您要创建一个以上的应用程序,否则我不确定您为什么需要自动化生成项目的过程。您可能想尝试阅读我的 Google 开发教程系列daimto.com/google-development-beginners
    • 好的,@DaImTo 所以现在的问题是,compass.co 是只要求登录 google 帐户以获取 google 分析数据的应用程序(我曾在免费帐户下尝试过)...我没有提供任何其他信息...例如 client id, client secret 即使它能够获取 GA 数据。它是如何工作的?
    • 这应该是该应用程序的开发人员已将其包含在他们的项目中,您作为他们应用程序的用户不应该看到这一点。
    • 谢谢,@DaImTo 我调试了compass.co 现在,如果我没记错的话... 他们正在使用他们的客户端 ID 和机密并获取我的 gmail 帐户的访问令牌和刷新令牌 为了获取数据并将存储刷新令牌以定期获取新数据。这就是 OAuth 2.0 的工作方式。如果我走错了方向,请纠正我。 :)
    【解决方案2】:

    您基本上是在询问是否可以获得通过 API 查询 API 所需的凭据。这不起作用。

    我也不确定这会对您有什么帮助。在您可以对 Google Analytics 帐户执行任何 API 操作之前,您需要将授权用户(例如服务帐户)添加到您的视图或属性中。如果您可以通过编程方式将用户添加到帐户中,那么您最好只读取您需要的数据。

    【讨论】:

    • 感谢@Eike Pierstorff 的关注和回答。是的,最终我正在寻找可以自动化 OAuth 2.0 身份验证工作流程的流程。
    猜你喜欢
    • 2015-10-28
    • 2010-11-17
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多