【问题标题】:Issue fetching data from google analytics api从谷歌分析 api 获取数据的问题
【发布时间】:2017-05-05 03:34:47
【问题描述】:

我一直在关注Hello Analytics Reporting API v4; PHP quickstart for service accounts,以完成从 Google Analytics(分析)报告中获取数据的 API 的设置。

在创建服务帐户、下载私钥和安装客户端库时,我已经完成了前三个步骤。我将私钥 JSON 文件放在与从站点获得的 HelloAnalytics.php 示例文件相同的目录中。我使用了在分析活动的视图设置中找到的 view_id。然后我把$KEY_FILE_LOCATION改成了私钥文件的名字。

由于某种原因,当我运行示例分析文件时,我收到一个 403 错误,指出权限已被拒绝,即使我已在活动管理员内添加了 API 权限。

我是否跳过了一步?可能出了什么问题?

【问题讨论】:

    标签: php google-analytics google-api google-analytics-api service-accounts


    【解决方案1】:

    是的,您错过了一步。服务帐号必须经过预授权。

    将服务帐户添加到 Google Analytics 帐户

    新创建的服务帐户将有一个类似于以下内容的电子邮件地址:

    quickstart@PROJECT-ID.iam.gserviceaccount.com

    使用此电子邮件地址将用户添加到您希望通过 API 访问的 Google 分析视图。对于本教程,仅需要读取和分析权限。

    转到管理部分的 Google 分析网站,并将服务帐户电子邮件地址添加为用户。在帐户级别。

    【讨论】:

    • 我确实通过谷歌分析网站授权了 API,我只是忘了提及它。在尝试使用 OAUTH 操场测试 api 并添加行 define('CREDENTIALS_PATH', '/<credential_name>') 后,我现在收到 401 错误,表示缺少身份验证凭据。这很奇怪,因为我现在指向客户端 id/secret 的下载 JSON 和自动生成的私钥的 JSON 文件。该问题似乎与缺少访问令牌有关,但我不确定如何获取或添加它。
    • 您没有获得客户端库所做的访问令牌。您应该只拥有一个来自您创建的服务帐户凭据的 Json 文件。 $KEY_FILE_LOCATION 您无法使用 Oauth2 且完全不同的身份验证 Playground 测试服务帐户。
    • 好的,我删除了第二个客户端 ID 文件,现在我只有私钥 JSON 文件,但我再次遇到相同的 403 错误。可能出了什么问题?
    • 您需要创建 oauth2 凭据并为此下载 JSON 文件。
    • 好的,我使用的是私钥文件,而不是来自 OAuth 客户端 ID 的客户端机密文件。我将 $KEY_FILE_LOCATION 切换为来自 OAUTH 2.0 客户端 ID 的 JSON 文件,但我再次收到 401 消息:Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. 客户端 ID 的类型是 Web 应用程序,所以我不确定这是否导致问题,因为它只是在脚本中从终端运行。还有什么需要做的吗?
    猜你喜欢
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 2017-07-12
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多