Google Analytics RunReport return 7 PERMISSION_DENIED:用户对此 属性 没有足够的权限
Google Analytics RunReport return 7 PERMISSION_DENIED: User does not have sufficient permissions for this property
我想 运行 使用 运行 报告的 google 分析报告。
我已按照 https://developers.google.com/analytics/devguides/reporting/data/v1/quickstart-client-libraries and made a copy of the code that uses json-credentials at https://github.com/googleapis/nodejs-analytics-data/blob/main/samples/quickstart_json_credentials.js
中的说明进行操作
我有一个分析帐户,其中包含两个属性和应用程序 - DEV 和 STAGE。
在每一个中我都创建了一个具有 OWNER 权限的服务帐户。之后我创建了一个密钥并下载了生成的 JSON-file.
我可以测试 运行 来自“试试这个 API” link 的 API 我的两个属性都很好对于他们两个。 (但后来我当然使用 OAuth 身份验证)。
然而,当我 运行 使用 JSON-凭据的代码时,DEV 始终有效。舞台总是失败。我已经从我的机器和 https://shell.cloud.google.com/ 中尝试 运行ning 代码,结果相同。
失败信息是:
7 PERMISSION_DENIED: User does not have sufficient permissions for this property. To learn more about Property ID, see https://developers.google.com/analytics/devguides/reporting/data/v1/property-id.
我已经多次检查 DEV 和 STAGE 属性是否正确,并且我使用了与正确的 属性.
关联的 JSON-credentials 文件
在 STAGE 中,调用总是失败,我已经多次创建新的服务帐户(使用 Basic->Owner 凭据)、创建密钥并下载 JSON-凭据。但结果都一样。 STAGE 总是失败。
我比较了 DEV 和 STAGE 中服务帐户的权限,它们似乎是相同的。
我已经阅读并尝试了其他人在堆栈溢出时遇到“权限被拒绝”问题的提示,但 none 解决了我的问题。
是否有我从 google 控制台读取的任何授权日志?
我现在有点卡住了。
我的代码运行(属性和文件名混淆):
"use strict";
function main(propertyId = "YOUR-GA4-PROPERTY-ID", credentialsJsonPath = "") {
propertyId = "27..DEV property";
credentialsJsonPath = "./DEVcredentials.json";
// propertyId = "27..STAGE property";
// credentialsJsonPath = "./STAGEcredentials.json";
const { BetaAnalyticsDataClient } = require("@google-analytics/data");
const analyticsDataClient = new BetaAnalyticsDataClient({
keyFilename: credentialsJsonPath,
});
async function runReport() {
const [response] = await analyticsDataClient.runReport({
property: `properties/${propertyId}`,
dateRanges: [
{
startDate: "2020-03-31",
endDate: "today",
},
],
dimensions: [
{
name: "country",
},
],
metrics: [
{
name: "activeUsers",
},
],
});
console.log("Report result:");
response.rows.forEach((row) => {
console.log(row.dimensionValues[0], row.metricValues[0]);
});
}
runReport();
}
process.on("unhandledRejection", (err) => {
console.error(err.message);
process.exitCode = 1;
});
main(...process.argv.slice(2));
User does not have sufficient permissions for this property.
表示与您进行身份验证的用户无权访问该视图。在这种情况下,我们谈论的是 properties/${propertyId}
如果您使用的是服务帐户,请确保在帐户级别而不是视图级别授予它权限。
需要通过管理部分的 google 分析网站授予权限
我想 运行 使用 运行 报告的 google 分析报告。 我已按照 https://developers.google.com/analytics/devguides/reporting/data/v1/quickstart-client-libraries and made a copy of the code that uses json-credentials at https://github.com/googleapis/nodejs-analytics-data/blob/main/samples/quickstart_json_credentials.js
中的说明进行操作我有一个分析帐户,其中包含两个属性和应用程序 - DEV 和 STAGE。
在每一个中我都创建了一个具有 OWNER 权限的服务帐户。之后我创建了一个密钥并下载了生成的 JSON-file.
我可以测试 运行 来自“试试这个 API” link 的 API 我的两个属性都很好对于他们两个。 (但后来我当然使用 OAuth 身份验证)。
然而,当我 运行 使用 JSON-凭据的代码时,DEV 始终有效。舞台总是失败。我已经从我的机器和 https://shell.cloud.google.com/ 中尝试 运行ning 代码,结果相同。 失败信息是:
7 PERMISSION_DENIED: User does not have sufficient permissions for this property. To learn more about Property ID, see https://developers.google.com/analytics/devguides/reporting/data/v1/property-id.
我已经多次检查 DEV 和 STAGE 属性是否正确,并且我使用了与正确的 属性.
关联的 JSON-credentials 文件在 STAGE 中,调用总是失败,我已经多次创建新的服务帐户(使用 Basic->Owner 凭据)、创建密钥并下载 JSON-凭据。但结果都一样。 STAGE 总是失败。
我比较了 DEV 和 STAGE 中服务帐户的权限,它们似乎是相同的。
我已经阅读并尝试了其他人在堆栈溢出时遇到“权限被拒绝”问题的提示,但 none 解决了我的问题。
是否有我从 google 控制台读取的任何授权日志? 我现在有点卡住了。
我的代码运行(属性和文件名混淆):
"use strict";
function main(propertyId = "YOUR-GA4-PROPERTY-ID", credentialsJsonPath = "") {
propertyId = "27..DEV property";
credentialsJsonPath = "./DEVcredentials.json";
// propertyId = "27..STAGE property";
// credentialsJsonPath = "./STAGEcredentials.json";
const { BetaAnalyticsDataClient } = require("@google-analytics/data");
const analyticsDataClient = new BetaAnalyticsDataClient({
keyFilename: credentialsJsonPath,
});
async function runReport() {
const [response] = await analyticsDataClient.runReport({
property: `properties/${propertyId}`,
dateRanges: [
{
startDate: "2020-03-31",
endDate: "today",
},
],
dimensions: [
{
name: "country",
},
],
metrics: [
{
name: "activeUsers",
},
],
});
console.log("Report result:");
response.rows.forEach((row) => {
console.log(row.dimensionValues[0], row.metricValues[0]);
});
}
runReport();
}
process.on("unhandledRejection", (err) => {
console.error(err.message);
process.exitCode = 1;
});
main(...process.argv.slice(2));
User does not have sufficient permissions for this property.
表示与您进行身份验证的用户无权访问该视图。在这种情况下,我们谈论的是 properties/${propertyId}
如果您使用的是服务帐户,请确保在帐户级别而不是视图级别授予它权限。
需要通过管理部分的 google 分析网站授予权限