获取 Google 商业评论服务器端

问题描述 投票:0回答:2

我正在尝试通过 API 获取我的 Google 业务评论列表,并将其显示在我的网站上。但我不知道如何验证 API 服务器端。该文档仅提到使用重定向 URL 从客户端进行 OAuth2.0 身份验证,但在这种情况下不会有客户端进入确认页面。

我只是希望能够在 Node.js 中执行此请求:

GET https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/reviews

我已经提交了申请并获得了商业 API 的批准,并在我的帐户中启用了各种 API。我已经创建了 OAuth2.0 凭据。我只是不知道如何从这里继续前进。

如何在服务器上验证 Google Business API 请求?

node.js oauth-2.0 google-api google-oauth google-business
2个回答
4
投票

我最终通过大量搜索找到了答案。谷歌文档到处都是。

下面是获取评论的基本示例。但要让它发挥作用,首先需要执行几个步骤。

  1. 您需要在 API 凭证页面添加服务帐户
    • 名称、ID 和描述并不是特别重要。只是一些对你有意义的事情
  2. 转到服务帐户详细信息 -> 密钥 -> 添加密钥 -> 创建新密钥 -> JSON
    • 这会将密钥文件下载到您的计算机。 保密。
  3. 为您的服务帐户授予域范围授权
    • 为此,如果您是某个组织的成员,则需要成为该帐户的管理员
    • 它会要求提供客户端 ID,但它在服务帐户详细信息中称为唯一 ID。它们是同一件事。
    • 添加您想要访问的服务所需的任何范围。对于评论来说,下面示例中列出的范围就足够了。
  4. subject
    中的
    google.auth.JWT
    字段需要是帐户的管理员。我用我自己的电子邮件。

应该是这样!您现在应该能够填写下面示例中的值并从服务器访问 API。其他服务可能需要不同的范围。

您可以从 API 文档获取 accountlocation 信息。端点和数据格式都有很好的记录。只是身份验证似乎没有得到很好的解释。

import axios from 'axios';
import {google} from 'googleapis';

import key from './key.json' assert {type: 'json'};

main();

async function main(){
    const reviews=await getReviews();
}

async function getReviews(){
    const token=await authenticate();
    const accountId='YOUR ACCOUNT ID';
    const locationId='YOUR LOCATION ID';
    const url=`https://mybusiness.googleapis.com/v4/accounts/`+
          `${accountId}/locations/${locationId}/reviews`;
    const resp=await axios.get(url, {
        headers: {
            authorization: `Bearer ${token}`
        }
    });
    return resp.data.reviews;
}

async function authenticate(){
    const scopes=[
        'https://www.googleapis.com/auth/business.manage'
    ];

    const jwt=new google.auth.JWT({
        email: key.client_email,
        key: key.private_key,
        subject: 'ADMIN EMAIL',
        scopes
    });

    const resp=await jwt.authorize();
    return resp.access_token.replace(/\.{2,}/g, '');
}


0
投票

这不是一个答案,但我被困在这个问题上,StackOverflow 不让我发表评论。顺便问一下,我们如何获取accountId和locationId呢?走到这一步我就迷路了

© www.soinside.com 2019 - 2024. All rights reserved.