Google Analytics API 在示例代码中返回 401

2024-01-14

我正在尝试从谷歌分析的内容实验中检索数据......

我正在使用以下代码,我的信用良好,并且已针对这篇文章进行了审查......

<?php
require_once 'Google/Client.php';
require_once 'Google/Service/Analytics.php';

session_start();

$client = new Google_Client();
$client->setApplicationName('Hello Analytics API Sample');

// Visit https://cloud.google.com/console to generate your
// client id, client secret, and to register your redirect uri.
$client->setDeveloperKey('xxxxx');

$service = new Google_Service_Analytics($client);
try {
$results = $service->management_experiments->listManagementExperiments('xxxx', 'xxxx', 'xxxx');
} catch (apiServiceException $e) {
  print 'There was an Analytics API service error ' . $e->getCode() . ':' . $e->getMessage();

} catch (apiException $e) {
  print 'There was a general API error ' . $e->getCode() . ':' . $e->getMessage();
}
echo '<pre>';
print_r($results);
echo '</pre>';

我正在使用以下示例......

https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtExperimentsGuide#list https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtExperimentsGuide#list

关于为什么我会收到未经授权的 401 请求,您有什么想法吗?需要登录吗?


问题是您尚未授权访问您的数据。既然你说这只是你想要访问的你自己的数据,我建议你研究一下服务帐户 https://developers.google.com/accounts/docs/OAuth2ServiceAccount。通过在中设置服务帐户谷歌 API 控制台 https://cloud.google.com/console/project?redirected=true它将允许您访问自己的数据,而无需始终登录和验证代码。

检查以下链接。阅读之前你开始确保你做到了这一切。

https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtExperimentsGuide#service https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtExperimentsGuide#service

  1. 在 Google Developers Console 中注册您的应用程序
  2. 授权访问 Google Analytics 数据。
  3. 创建 Analytics 服务对象

您已跳过前两个步骤,直接进入步骤 3 创建服务对象。完成步骤 1 后,您可以在步骤 2 中使用以下代码。


这是如何在 php 中使用服务帐户的示例服务帐户 http://code.google.com/p/google-api-php-client/source/browse/trunk/examples/prediction/serviceAccount.php

该示例项目适用于 PredictionService,而不是谷歌分析服务。您需要稍微编辑一下。

require_once '../../src/Google/Client.php'; 
require_once '../../src/Google/Service/Analytics.php'; 

// Set your client id, service account name, and the path to your private key. 
// For more information about obtaining these keys, visit: 
// https://developers.google.com/console/help/#service_accounts

const CLIENT_ID = 'INSERT_YOUR_CLIENT_ID'; 
const SERVICE_ACCOUNT_NAME = 'INSERT_YOUR_SERVICE_ACCOUNT_NAME'; 


// Make sure you keep your key.p12 file in a secure location, and isn't 
// readable by others.

const KEY_FILE = '/super/secret/path/to/key.p12'; 


$client = new Google_Client(); 
$client->setApplicationName("Google Analytics Sample"); 


// Load the key in PKCS 12 format (you need to download this from the 
// Google API Console when the service account was created. 


$client->setAssertionCredentials(new Google_AssertionCredentials( 
    SERVICE_ACCOUNT_NAME(Email), 
    array('https://www.googleapis.com/auth/analytics.readonly'), 
    file_get_contents(KEY_FILE)) 
); 


$client->setClientId(CLIENT_ID); 
$service = new Google_Service_Analytics($client);

现在你有$service您可以将其用于其余的通话。注意:我没有时间测试该代码,如果它不起作用,请告诉我,我会帮助您修复它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Analytics API 在示例代码中返回 401 的相关文章

随机推荐

  • 为什么 std::string 不定义乘法或文字? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • JAX-RS Rest 服务停止在 Eclipse Glassfish 上部署

    我使用 Eclipse 在 Glassfish 4 1 1 上开发 Jersey JAX RS 应用程序大约一年了 今天早些时候 我对某些类进行了一些正常的更改 但是当我尝试进行构建时 Eclipse 没有更新这些类 我在 Stack Ov
  • 为什么应该将 CSRF 令牌放入 JWT 令牌中?

    我想对 JWT 代币和 CSRF 提出疑问风暴之路帖子 https stormpath com blog where to store your jwts cookies vs html5 web storage 解释了将 JWT 存储在
  • Android - 如何将后续视图发送回去

    我向 LinearLayout 添加一些视图 顶部略有重叠 代码如下 viewHolder linearLayout removeAllViews for int i 0 i lt conversation getPreviousMessa
  • 如何使用 AutoFixture 生成编译时未知的任意类型的存根对象

    我可以像这样获取构造函数参数的类型 Type type paramInfo ParameterType 现在我想从这种类型创建存根对象 有可能吗 我尝试使用自动固定装置 public TObject Stub
  • 在 Windows 上将 Xdebug 和 PhpStorm 与 Docker 容器结合使用

    我正在尝试使用 PhpStorm 使 Xdebug 适用于 Windows 上的 Docker 容器 我阅读了不同的文章和其他线程 但它仍然不起作用 在 docker compose yaml 中 我的应用程序容器有以下配置 version
  • Material UI 自动完成上的 Typescript 相等问题

    数据存储为 iso gb label United Kingdom country United Kingdom iso fr label France country France 传递给自动完成的值是 iso gb label Unit
  • odoo 9 - 如何限制 one2many 不显示表单视图

    我有一个 Many2many 它使用 one2many 小部件 我设置了 mode tree 并使用 editable bottom 这在编辑模式下按预期工作 但是在查看模式下 如果用户单击一行 它将在表单视图中打开该行 我如何防止这种情况
  • 如何在

    这个问题在这里已经有答案了 我有一个在 XAML 中声明的按钮 它具有 MouseDown 和 MouseUp 属性 它们都调用指定的方法
  • 通过排序快速插入/删除的数据结构

    我正在拼命寻找一种数据结构 允许我执行大量插入 几乎同样多的删除 可能是相同的数量级 以及非常快速地查找最高 或最低 可以使用其中任何一个 值 删除始终只会影响最高 或最低 值 问题是这些值必须进行排序 并且在任何时候我都可以在其他两个之间
  • RestAdapter(改造)在android中无法解析

    所以我尝试在我的项目中使用 Retrofit 正如该网站所说 我已经包括了compile com squareup retrofit retrofit 2 0 0 beta1 in build gradle 我正在阅读此教程link htt
  • Windows - 无法强制关闭网络文件句柄 - 无法关闭系统(Pid 4)文件句柄

    首先 很抱歉问了这么长的问题 但我想提供足够的细节 概要 在 Windows 中 似乎无法强制关闭通过网络共享打开的文件句柄 因此 通过网络共享打开的文件无法移动 重命名 删除 我用的是Win 7 问题 任何人都可以看到我做错了什么 或者有
  • 以角度动态更改 css 变量

    在我的角度项目中 我在顶层定义了一些 css 变量样式 scss像这样的文件 我在很多地方使用这些变量来保持整个主题的一致性 root theme color 1 f7f7f7 theme color 2 ec4d3b theme colo
  • Android启动意图查看apk

    在我的应用程序中 我下载一个 apk 并将其保存到 SD 卡 然后我想开始安装该 apk 我正在使用以下代码来尝试此操作 Intent intent new Intent intent setAction Intent ACTION VIE
  • Mathematica 中的变换分布

    我开发了一些代码来从 LogNormalDistribution 和 StableDistribution 的乘积生成随机变量 LNStableRV Alpha Beta Gamma Sigma Delta n Module LNRV SD
  • 如何找到相交矩形的交点矩形(点)

    如果我有两个相交的矩形 x1 y1 x2 y2 x3 y3 x4 y4 由两个顶点描述 如何找到一个由它们的交集产生的矩形 得到这些矩形相交的 2 个点 编程语言并不重要 可能是伪代码 PS 矩形与 OXY 平行 你可以使用矩形 交集 ht
  • 让 VertexRenderingFunction 缩放(不缩放)

    我在自定义 VertexRenderingFunction 以不同尺寸显示不同图形时遇到问题 下面是一个示例 默认的顶点渲染函数具有所需的行为 因为顶点在所有图中看起来都相同 有什么建议如何使用自定义顶点来实现这一点吗 source yar
  • 软件生成的中断和软件生成的异常有什么区别?

    我正在阅读英特尔手册 3A 第 6 章中断和异常处理 中断和异常分别有3个来源 对于软件生成的中断 它说 INT n 指令允许从内部产生中断 软件通过提供中断向量号作为操作数 为了 例如 INT 35 指令强制隐式调用 中断 35 的中断处
  • urllib2 中重复主机查找失败

    我的代码使用 Python 的 urllib2 在多个线程中发出许多 HTTP GET 请求 将响应写入文件 每个线程一个 在执行过程中 看起来许多主机查找失败 导致名称或服务未知错误 请参阅附加的错误日志以获取示例 这是由于 DNS 服务
  • Google Analytics API 在示例代码中返回 401

    我正在尝试从谷歌分析的内容实验中检索数据 我正在使用以下代码 我的信用良好 并且已针对这篇文章进行了审查