从推送Pub/Sub获取Google商业通知



我想在我的Google Business Profile中添加新评论时收到通知。

根据文档,我已经设置了通知,但是当添加新的评论时,我什么也没有得到。

首先,我创建了一个Pub/Sub Topicprojects/my-project/topics/business-profile-notifications

然后,我创建了一个附加到前面创建的主题的推送订阅projects/my-project/subscriptions/business-profile-notifications-push。我还定义了一个端点:https://my-endpoint/webhook。这个端点正在监听POST请求

最后,我将服务帐户mybusiness-api-pubsub@system.gserviceaccount.com添加到IAM中,具有Pub/Sub admin角色。

在代码端,我在TypeScript Node.js服务器中使用NPMgoogleapis客户端。

我正在更新帐户设置以设置通知:

const { data }: GaxiosResponse<mybusinessnotifications_v1.Schema$NotificationSetting> = await google.mybusinessnotifications({
version: 'v1',
auth,
}).accounts.updateNotificationSetting({
name: `accounts/${params.accountID}/notificationSetting`,
updateMask: 'notification_types',
requestBody: {
name: `accounts/${params.accountID}/notificationSetting`,
pubsubTopic: 'projects/my-project/topics/business-profile-notifications',
notificationTypes: [
'NEW_REVIEW',
'UPDATED_REVIEW',
],
},
});

此时,当添加新的审阅时,什么也没有发生。

当我通过curl命令curl -X POST -H "Content-Type: application/json" -i "https://my-endpoint/webhook"在端点上发送POST请求时,请求被成功捕获。

另一方面,当我从配置的帐户获得通知设置时,我有通知类型,但没有任何订阅主题:

const { data }: GaxiosResponse<mybusinessnotifications_v1.Schema$NotificationSetting> = await google.mybusinessnotifications({
version: 'v1',
auth,
}).accounts.getNotificationSetting({
name: `accounts/${accountID}/notificationSetting`,
fields: 'pubsubTopic,notificationTypes',
});

反应:

{
"notificationTypes": [
"NEW_REVIEW",
"UPDATED_REVIEW"
]
}

我忘了做什么?

我自己解决了这个问题😁

updateNotificationSetting方法的文档中,是否声明"唯一可编辑的字段是notificationSetting"关于updateMask字段。但这是错误的。我必须添加pubsubTopic作为值。

最后,该方法的参数值为:

const opts = {
name: `accounts/${params.accountID}/notificationSetting`,
updateMask: 'notificationTypes,pubsubTopic',
requestBody: {
name: `accounts/${params.accountID}/notificationSetting`,
pubsubTopic: params.pubsubTopic,
notificationTypes: params.notificationTypes,
},
};
const { data }: GaxiosResponse<mybusinessnotifications_v1.Schema$NotificationSetting> = await google.mybusinessnotifications({
version: 'v1',
auth,
}).accounts.updateNotificationSetting(opts);

相关内容

  • 没有找到相关文章

最新更新