【问题标题】:Google Analytics Data API has not been used in project 12345, but I have no access to this projectGoogle Analytics Data API 未在项目 12345 中使用,但我无权访问此项目
【发布时间】:2021-07-27 18:21:50
【问题描述】:

我正在运行这段代码:

var auth = "Bearer " + token;
var myHeaders = {
  "Authorization": auth
}

var rawdata = JSON.stringify({
  "dimensions": [
    {
      "name": "appVersion"
    },
    {
      "name": "eventName"
    }
  ],
  "metrics": [
    {
      "name": "eventCount"
    }
  ],
  "dateRanges": [
    {
      "startDate": "30daysAgo",
      "endDate": "yesterday"
    }
  ],
  "orderBys": [
    {
      "dimension": {
        "orderType": "ALPHANUMERIC",
        "dimensionName": "appVersion"
      }
    },
    {
      "dimension": {
        "orderType": "ALPHANUMERIC",
        "dimensionName": "eventName"
      }
    }
  ],
  "metricAggregations": [
    "TOTAL"
  ]
});

var requestOptions = {
  'contentType': 'application/json',
  'headers': myHeaders,
  'method' : 'post',
  'payload' : rawdata, 
  'followRedirects': true,
   'muteHttpExceptions' : true
};

  var response = UrlFetchApp.fetch(url, requestOptions);
    Logger.log(`response is ${response}`)
   var result = JSON.parse(response.getContentText());
  var dataSet = result;
Once I had created a trigger, we saw 100% failure rate.

response is {
  "error": {
    "code": 403,
    "message": "Request had insufficient authentication scopes.",
    "status": "PERMISSION_DENIED"
  }
}

并得到这个错误:

  "error": {
    "code": 403,
    "message": "Google Analytics Data API has not been used in project 548594456844 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/analyticsdata.googleapis.com/overview?project=548594456844 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
    "status": "PERMISSION_DENIED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.Help",
        "links": [
          {
            "description": "Google developers console API activation",
            "url": "https://console.developers.google.com/apis/api/analyticsdata.googleapis.com/overview?project=548594456844"
          }
        ]
      },
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "SERVICE_DISABLED",
        "domain": "googleapis.com",
        "metadata": {
          "consumer": "projects/548594456844",
          "service": "analyticsdata.googleapis.com"
        }
      }
    ]
  }
}

但我无权访问此 GCP 项目。 这是否意味着 GCP 必须调用 GA4 API?

如果我无权访问此 GCp 项目(应用程序脚本的默认项目)- 我该如何解决?

【问题讨论】:

    标签: google-apps-script google-cloud-platform oauth-2.0 google-analytics-api google-analytics-4


    【解决方案1】:

    Google Projects 是一种泛型类型,存在于例如谷歌云、Firebase 和其他谷歌“产品领域”喜欢通过他们(较小的|有限的)世界观来展示谷歌。

    注意 在过去,IIRC,这些都被称为 API 项目或类似项目。有时可以从(例如 Firebase)项目浏览(例如 GCP 项目),但项目元数据往往会将项目过滤到创建它们的控制台。

    推论:当您创建 Google Cloud Platform 项目时,您实际上是在创建一个通用的 Google API 项目,其中可能包含一些额外的元数据,将项目呈现为 GCP。

    Google 项目是一组 Google API、一组凭据(用户|服务)帐户和一个结算帐户的交集。

    在这种情况下,您需要在项目中启用 Google Analytics Data API,然后才能使用该项目拥有的服务帐户调用 API。

    这不仅为使用 Google API 提供了安全性,而且还为计费范围提供了保障。在这种情况下,Google Analytics API 似乎不会产生帐单费用,但许多其他 Google API 会。

    如果您无法访问该项目并且没有任何有权访问的人愿意为您启用该项目,您将无法使用该服务帐户访问 Google Analytics。您可能想要创建另一个项目和一个新的服务帐户并使用它来代替。我认为(!?)您不需要启用计费以使用 Google Analytics Data API,因此您不应该需要提供例如一张信用卡。

    注意不要忘记将服务帐户的电子邮件地址 (${ACCOUNT}@${PROJECT}.iam.gserviceaccount.com) 添加到您的 Google Analytics(分析)属性(任意数量)的身份验证中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-21
      • 2019-03-03
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多