分析Google API错误403:“用户没有任何Google Analytics帐户”

时间:2012-10-11 10:42:44

标签: error-handling google-analytics

我正在根据此页面上的Google Analytics分步指南创建一个脚本:

  

https://developers.google.com/analytics/resources/tutorials/hello-analytics-api

在尝试访问数据之前,授权完成没有问题。返回码为403,错误消息为:

  

用户没有任何Google Analytics帐户

此消息没有任何意义:我的帐户具有Google分析数据,可跟踪多个网站,我可以毫无问题地从网络浏览器访问它。我通过Google API控制台允许使用Analytics API,API访问权限为我提供了正确的数据。

16 个答案:

答案 0 :(得分:265)

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

我通过查看Google API控制台中的“API访问”标签获得了服务帐户的电子邮件地址(类似于1234567890@developer.gserviceaccount.com)。

然后,我跟着Google's instructions for adding an email address to an Analytics profile。现在一切都按预期工作了。

祝你好运!

答案 1 :(得分:68)

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

发送给用户管理员:

User does not have any Google Analytics account

希望它可以帮助你

答案 2 :(得分:11)

我面临着同样的问题。通过将服务帐户用户(您的account@yourwebsite-dev.iam.gserviceaccount.com)的电子邮件ID添加到Google Analytics(分析)帐户中的用户,可以解决该问题-

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

enter image description here

现在,这将解决问题。

答案 3 :(得分:7)

上面的评论中提到了这一点,但如果您在帐户的用户管理下添加电子邮件地址,则无法使用。您必须单击屏幕视图部分下的用户管理。

enter image description here

答案 4 :(得分:4)

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

答案 5 :(得分:2)

我收到了403错误,直到我从“Google阅读器”中更改了Google Analytics内部的电子邮件帐户的权限。分析'其他东西,保存它,然后将权限更改回'Read&分析'并且它有效。

答案 6 :(得分:2)

google alalyticsclient_email中没有授予client_email的权限时,您得到from the JSON file时,我们会收到此消息。授予您在应用中使用的client_email的权限,转到Google Analytics site,然后单击“管理员(设置图标)”

enter image description here

您将获得正确的菜单列表,然后单击“查看用户管理”

enter image description here

您将在其中看到“ +”图标和“添加用户”,

enter image description here

单击后,需要在“电子邮件地址”字段中添加client_email并将其保存,您应该可以使用!

enter image description here

答案 7 :(得分:1)

我遇到了403错误。这些步骤让我了解它。为了清楚起见,我试图获得Google的样本" HelloAnalytics.php"使用OAuth(没有用户交互,适合cron作业等)。

启用Analytics API后,我创建了一个新的"服务帐户"在API&认证/证书;并保存了.p12密钥对。然后,我进入了Analytics用户管理控制台,并添加了该服务用户的电子邮件地址。

使用PHP API的.p12授权如果我只检查 "阅读&分析"权限列表中仅 。如果我添加"管理用户"和/或"编辑",我得到403.希望这是有帮助的,我正在研究这几个小时......

答案 8 :(得分:0)

我也有这个问题,我发现问题在于我曾要求过多的权限。开发者控制台会说要求http://www.googleapis.com/auth/analytics http://www.googleapis.com/auth/analytics.readonly权限。当我还在使用sub声明时,这不起作用。 sub声明会指示Google发出代表其他用户运行的访问令牌 - 在我看来是拥有该服务帐户的Google帐户。我删除了analytics权限,并坚持使用analytics.readonly子请求:

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

发出的持票人令牌允许我对完全不同的Google帐户所拥有但已与我的Gmail用户共享(只读)的个人资料进行(至少部分)Google Analytics查询(me.example@gmail) .COM)。

答案 9 :(得分:0)

我设法通过确保

来解决这个问题

client = Google :: APIClient.new(:application_name =>'X',:application_version =>'1')

应用程序名称变量'X上面是GA仪表板上的ACCOUNT名称,而不是PROPERTY名称,在我的情况下是我想要访问的网站的实际网址。

令人困惑,但谢天谢地(不,谢谢谷歌!)

答案 10 :(得分:0)

问题出现了,因为我们没有提供" sub"论点。除非我们提供此服务,否则将代表该长服务帐户电子邮件进行通话。

所以只需提供一个子参数,一封你已经在报告中提供访问权限的电子邮件,一切都应该运作良好!

答案 11 :(得分:0)

由于没有登录Google Analytics(分析),因此出现了同样的错误。因此,我已经通过登录分析帐户解决了该问题。

答案 12 :(得分:0)

您可以使用OAuth client ID凭据来避免添加服务用户的需求(按照该主题的最高答案),而无需使用服务帐户。

转到API credentials dashboard,然后单击“创建凭据”->“ OAuth客户端ID”。之后,您将获得身份验证API所需的客户端ID和客户端密码。

现在,您可以使用OAuth2WebServerFlow来按使用进行身份验证。这是一个python3示例:

from apiclient.discovery import build
from oauth2client.client import OAuth2WebServerFlow

# TODO: Fill these in...
CLIENT_ID = ''
CLIENT_SECRET = ''
VIEW_ID = ''

flow = OAuth2WebServerFlow(
    CLIENT_ID, CLIENT_SECRET,
    'https://www.googleapis.com/auth/analytics.readonly',
    redirect_uri='urn:ietf:wg:oauth:2.0:oob'
)

authorize_url = flow.step1_get_authorize_url()
print('Receive code from:\n%s\n' % authorize_url)
code = input('Enter code here:').strip()
credentials = flow.step2_exchange(code)

api = build('analyticsreporting', 'v4', credentials=credentials)
body={
    'reportRequests': [{
        'viewId': VIEW_ID,
        'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
        'metrics': [{'expression': 'ga:sessions'}],
        'dimensions': [{'name': 'ga:country'}]
    }]
}

data = api.reports().batchGet(body=body).execute()

答案 13 :(得分:0)

以防万一无法正常工作,请尝试打开已下载的JSON文件并搜索client_email,然后复制该电子邮件地址并将其添加到查看文件中

点击

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.

答案 14 :(得分:0)

转到https://console.cloud.google.com/apis/credentials

在“服务帐户”中复制电子邮件地址。

enter image description here

打开Goog​​le Analytics(分析),在上方添加电子邮件作为新用户。

答案 15 :(得分:-1)

您尝试使用该API的用户尚未启用其GA服务 Simply having a google account is not enough

  

...但是,拥有Google帐户并不会自动授予您权限   访问Google Analytics。首先,您必须注册Google Analytics,a   一次性,简单的过程...