【问题标题】:Google Cloud Functions Analytics API - Delete User OAuth2Google Cloud Functions Analytics API - 删除用户 OAuth2
【发布时间】:2021-09-01 10:02:37
【问题描述】:

请帮忙。

我有一个从 Google Analytics 中删除用户数据的云功能,当我从后端发送带有删除请求的 Pub/Sub 消息时会触发此功能。我正在使用在我的 Google Cloud Console 上激活的 Google Analytics API。

我关注了这个文档:https://developers.google.com/analytics/devguides/config/userdeletion/v3,但是我没有成功通过云功能删除用户。

云功能:


function deleteGArecord(userObject) {

  const options = {
    method: "POST",
    url: "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert",
    headers: {
      //"Content-Type": "application/json",
    },
    body: JSON.stringify({
      kind: "analytics#userDeletionRequest",
      id: {
        type: "CLIENT_ID",
        userId: userObject.clientId,
      },
      webPropertyId: "UA-111111-000",
    }),
  };
  request(options, function (error, response) {
    if (error) {
      console.log(error);
    }
    console.log("ga user delete request:" + JSON.stringify(response));
  });
}

我尝试了什么:

  1. 创建 OAuth 客户端 ID - 应用程序类型 web。
  2. 在我的 Analytics 媒体资源中添加了此客户。
  3. 发送删除请求时调用该函数。

云功能日志:

"statusCode":401,"body":"{\n \"error\": {\n \"code\": 401,\n \"message\": \"Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.\",\n \"errors\": [\n {\n \"message\": \"Login Required.

我如何验证我的云功能才能发送此命中。我已经创建了用户,并且正在从 ClientId 所在的同一个项目中调用此函数...

提前致谢!

【问题讨论】:

    标签: google-cloud-functions google-oauth google-analytics-api


    【解决方案1】:

    请求缺少所需的身份验证凭据。

    您缺少授权标头。您将需要一个不记名令牌,其中包含具有正确授权范围的访问令牌

    User Deletion API

    需要以下范围的授权

    一旦您获得授权,您就可以查看类似的内容。

    const options = {
        method: "POST",
        url: "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert",
        headers: {
          "Authorization": "Bearer " + access_token,
        },
    

    问题将是如何让云功能授权给 google api。

    【讨论】:

    • @DalmTo,谢谢!对我来说,问题是我不清楚如何获取access_token,因为在 GPC 上创建的 ClientID 具有正确的范围,还是我错了?我只是将令牌设置为我的客户秘密并得到Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid...
    • 我不相信 GPC 可以登录。除非您使用服务帐户登录。使用云功能。自从我使用云功能以来已经很久了。为此,您需要确保服务帐户有权访问 google anlaytics 帐户,以便初学者必须将其添加为用户。
    猜你喜欢
    • 2019-01-24
    • 2021-02-04
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多