我正在根据此页面上的Google Analytics分步指南创建一个脚本:
https://developers.google.com/analytics/resources/tutorials/hello-analytics-api
在尝试访问数据之前,授权完成没有问题。返回码为403,错误消息为:
用户没有任何Google Analytics帐户
此消息没有任何意义:我的帐户具有Google分析数据,可跟踪多个网站,我可以毫无问题地从网络浏览器访问它。我通过Google API控制台允许使用Analytics API,API访问权限为我提供了正确的数据。
答案 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
)
发送给用户管理员:
希望它可以帮助你
答案 2 :(得分:11)
我面临着同样的问题。通过将服务帐户用户(您的account@yourwebsite-dev.iam.gserviceaccount.com)的电子邮件ID添加到Google Analytics(分析)帐户中的用户,可以解决该问题-
Analytics主页->管理员(左窗格)->用户管理->添加(单击菜单右侧的加号)->添加新用户->在输入电子邮件地址中添加电子邮件ID。 / p>
现在,这将解决问题。
答案 3 :(得分:7)
答案 4 :(得分:4)
如果您从未使用您尝试进行身份验证的Google帐户登录,也会出现此错误。
答案 5 :(得分:2)
我收到了403错误,直到我从“Google阅读器”中更改了Google Analytics内部的电子邮件帐户的权限。分析'其他东西,保存它,然后将权限更改回'Read&分析'并且它有效。
答案 6 :(得分:2)
在google alalytics,client_email
中没有授予client_email
的权限时,您得到from the JSON file时,我们会收到此消息。授予您在应用中使用的client_email
的权限,转到Google Analytics site,然后单击“管理员(设置图标)”
client_email
并将其保存,您应该可以使用!答案 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
在“服务帐户”中复制电子邮件地址。
打开Google Analytics(分析),在上方添加电子邮件作为新用户。
答案 15 :(得分:-1)
您尝试使用该API的用户尚未启用其GA服务 Simply having a google account is not enough
...但是,拥有Google帐户并不会自动授予您权限 访问Google Analytics。首先,您必须注册Google Analytics,a 一次性,简单的过程...