我一直在尝试使用服务帐户调用 Analytics Data API 进行身份验证。
为此,我有
不幸的是,每当我尝试使用 BetaAnalyticsDataClient 运行任何 Python 脚本时,无论我尝试哪个资源端点,最终都会收到此错误
response = client.run_report(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blah/newenv/lib/python3.11/site-packages/google/analytics/data_v1beta/services/beta_analytics_data/client.py", line 518, in run_report
response = rpc(
^^^^
File "/blah/newenv/lib/python3.11/site-packages/google/api_core/gapic_v1/method.py", line 113, in __call__
return wrapped_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blah/newenv/lib/python3.11/site-packages/google/api_core/timeout.py", line 120, in func_with_timeout
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/blah/newenv/lib/python3.11/site-packages/google/api_core/grpc_helpers.py", line 74, in error_remapped_callable
raise exceptions.from_grpc_error(exc) from exc
google.api_core.exceptions.DeadlineExceeded: 504 Deadline Exceeded
我什至尝试过https://github.com/googleapis/python-analytics-data/blob/main/samples/snippets/get_common_metadata.py,它使用一些全局内部属性,但仍然收到 DeadlineExceeded 错误。
在初始化客户端时,我也尝试过 BetaAnalyticsDataClient.from_service_account_file("the_file"),希望这能起作用。
另外作为一个测试 - 虽然我不知道这是否应该工作 - 已经尝试过:
curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
https://analyticsdata.googleapis.com/v1beta/properties/0/metadata
返回
{
"error": {
"code": 403,
"message": "Request had insufficient authentication scopes.",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT",
"domain": "googleapis.com",
"metadata": {
"method": "google.analytics.data.v1beta.BetaAnalyticsData.GetMetadata",
"service": "analyticsdata.googleapis.com"
}
}
]
}
}
并已在我授予服务帐户管理员访问权限的属性上尝试过此操作。
我还需要启用其他功能才能使服务帐户正常工作吗?
在看不到代码的情况下很难提供帮助,但错误消息会告诉您问题是什么
Request had insufficient authentication scopes.
提出请求时,您需要获得以下范围之一的授权。
修复范围并重试。
@mountaineer,我目前也遇到同样的问题。 启用 Google Analytics Data API 后,您花了多长时间才成功运行请求? 您认为这与时间同步有关吗?