Error handling 分析谷歌API错误403:“;用户没有任何Google Analytics帐户“;

Error handling 分析谷歌API错误403:“;用户没有任何Google Analytics帐户“;,error-handling,google-analytics,Error Handling,Google Analytics,我正在创建一个脚本,基于此页面中的Google Analytics分步指南: 在尝试访问数据之前,授权不会出现问题。返回代码为403,错误消息为: 用户没有任何Google Analytics帐户 这条消息毫无意义:我的帐户有谷歌分析数据,跟踪多个网站,我可以通过网络浏览器毫无问题地访问它。我允许通过谷歌API控制台使用分析API,API访问为我提供了正确的数据 您试图为其使用API的用户尚未启用其GA服务。 …然而,仅仅拥有一个谷歌帐户并不会自动授予您 访问分析。首先,你必须注册谷歌分析,

我正在创建一个脚本,基于此页面中的Google Analytics分步指南:

在尝试访问数据之前,授权不会出现问题。返回代码为403,错误消息为:

用户没有任何Google Analytics帐户


这条消息毫无意义:我的帐户有谷歌分析数据,跟踪多个网站,我可以通过网络浏览器毫无问题地访问它。我允许通过谷歌API控制台使用分析API,API访问为我提供了正确的数据

您试图为其使用API的用户尚未启用其GA服务。

…然而,仅仅拥有一个谷歌帐户并不会自动授予您 访问分析。首先,你必须注册谷歌分析,一个 一次性,简单的过程


我也有这个问题。我通过将我的服务帐户的电子邮件地址添加到我希望它访问的Google Analytics配置文件中来修复它

我得到了电子邮件地址(类似于xxxxxx@developer.gserviceaccount.com)在Google API控制台的“API访问”选项卡下查找服务帐户

然后,我跟着。现在一切正常


祝你好运

如果您从未使用您尝试验证的google帐户登录,也会出现此错误。

我也有此问题,我发现问题是我请求了太多的权限。开发者控制台说要同时请求
http://www.googleapis.com/auth/analytics
http://www.googleapis.com/auth/analytics.readonly
权限。当我还在使用
sub
索赔时,这不起作用。一个
sub
声明指示谷歌发布一个代表另一个用户运行的访问令牌——在我的例子中是拥有服务帐户的谷歌帐户。我删除了
analytics
权限,并坚持使用
analytics.readonly
和子声明:

{
  "iss":"123123123123123-xxxxxxxxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com",
  "sub":"me.example@gmail.com"
  "scope":"http://www.googleapis.com/auth/analytics",
  ...
}

发行的持票人令牌允许我对完全不同的谷歌账户拥有的档案进行(至少部分)谷歌分析查询,但这些档案已与我的gmail用户(我)共享(只读)。example@gmail.com).

我通过确保

client=Google::APIClient.new(:application\u name=>'X',:application\u version=>'1')

上面的应用程序名变量“X”是GA仪表板上的帐户名,而不是属性名,在我的例子中,属性名是我要访问的站点的实际url


令人困惑,但谢天谢地已修复(不用感谢谷歌!)

由于我们没有提供“sub”参数,所以出现了问题。除非我们提供此服务,否则该呼叫将代表该长期服务帐户电子邮件进行

因此,只需提供一个子参数,用一封你已经在报告中授予访问权限的电子邮件,事情应该会顺利进行

只需添加您指定的电子邮件(格式为
71667655853644-o653rrdkq5hthsgo0otbpojoo@developer.gserviceaccount.com

对于用户管理员:


希望它能对你有所帮助

我收到403错误,直到我将Google Analytics内部电子邮件帐户的权限从“读取和分析”更改为其他内容,保存了它,然后将权限更改回“读取和分析”,它才起作用。

我遇到了403错误。这些步骤让我绕过了它。为了清楚起见,我试图让Google的示例“HelloAnalytics.php”与OAuth(SAN用户交互,适用于cron作业等)一起工作

启用分析API后,我在API下创建了一个新的“服务帐户”&Auth/Credentials;并保存了.p12密钥对。然后我进入分析用户管理控制台,添加了该服务用户的电子邮件地址


.p12如果我只勾选权限列表中的“读取和分析”,则使用PHP API的授权有效。如果我添加“管理用户”和/或“编辑”,我将得到403。希望这对您有所帮助,我花了几个小时来研究这一点…

上面的评论中提到了这一点,但是如果您在用户管理下为您的帐户添加电子邮件地址,它将不起作用。您必须单击屏幕视图部分下的用户管理


我也面临同样的问题。通过添加服务帐户用户的电子邮件id(
account@yourwebsite-dev.iam.gserviceaccount.com
),发送给您的分析帐户中的用户-

分析主页->管理(左窗格)->用户管理->添加(单击菜单右侧的加号)->添加新用户->在输入电子邮件地址中添加电子邮件id。


现在,这将解决问题。

我也遇到了同样的错误,因为我没有登录google analytics。因此,我通过登录analytics帐户解决了这个问题。

您可以使用
OAuth客户端ID
凭据来避免添加新用户权限的需要,而不是使用服务帐户

转到并单击“创建凭据”->“OAuth客户端ID”。之后,您应该获得验证API所需的客户端ID和客户端密码

现在,您可以使用
OAuth2WebServerFlow
对每次使用进行身份验证。下面是一个Python 3示例:

来自apiclient.discovery导入生成
从oauth2client.client导入OAuth2WebServerFlow
#TODO:把这些填上。。。
客户端ID=“”
客户_机密=“”
视图ID=“”
flow=OAuth2WebServerFlow(
客户ID,客户机密,
'https://www.googleapis.com/auth/analytics.readonly',
重定向_uri='urn:ietf:wg:oauth:2.0:oob'
)
authorize\u url=flow.step1\u get\u authorize\u url()
打印('从以下地址接收代码:\n%s\n'%authorize\u url)
code=input('在此处输入代码:')。strip()
凭证=流程。步骤2_交换(代码)
api=build('analyticsreporting','v4',credentials=credentials)
身体={
“报告请求”:[{
Analytics-Home Page ->Admin(left pane) -> User Management -> add (click on plus sign on right side of the menu) -> Add new User -> Add the client_email address which you copied.
Analytics-Homepage-> Admin ->Views->User Management(Click on add(+) symbol, add this ccopied client_email address and give permissions and save it.