我正在尝试通过 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 请求?
我最终通过大量搜索找到了答案。谷歌文档到处都是。
下面是获取评论的基本示例。但要让它发挥作用,首先需要执行几个步骤。
subject
中的google.auth.JWT
字段需要是帐户的管理员。我用我自己的电子邮件。应该是这样!您现在应该能够填写下面示例中的值并从服务器访问 API。其他服务可能需要不同的范围。
您可以从 API 文档获取 account 和 location 信息。端点和数据格式都有很好的记录。只是身份验证似乎没有得到很好的解释。
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, '');
}
这不是一个答案,但我被困在这个问题上,StackOverflow 不让我发表评论。顺便问一下,我们如何获取accountId和locationId呢?走到这一步我就迷路了