我如何知道用户使用 WhatsApp API 和 Cloud Functions 回复了哪条消息?

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

我正在使用 WhatsApp API、Firestore 和 Google Cloud Functions 开发在线邀请系统。我的系统允许客人通过 WhatsApp 快速回复按钮回复活动邀请。但是,我遇到了受邀参加多个活动的客人的问题。

对于设置,

数据库结构:我在 Firestore 中有一个客户集合。每个客户文档都包含他们的客人。 RSVP 处理:Google Cloud 功能侦听 WhatsApp API Webhook 响应。它检查 JSON 响应中的电话号码,并在存储桶集合中创建包含访客 RSVP 状态的文档。 问题:

当一位客人(例如约翰)被邀请参加两个不同的活动(例如,婚礼 A 和婚礼 B)并对每个活动做出不同的反应(对 A 是,对 B 否)时,系统不会区分这些响应。它根据最新响应更新存储桶集合中 John 的 RSVP,从而影响这两个事件。这会导致两个活动看到 John 的 RSVP 状态相同,这是不正确的。

我想要发生的是我希望系统独立处理每个事件的RSVP。因此,如果 John 对婚礼 A 回复“是”,对婚礼 B 回复“否”,则每个事件应该仅反映相应的响应。此外,如果约翰更改了对特定事件的响应,它应该仅更新该事件的 RSVP 状态。

那么,如何修改我的 Firestore 结构或云功能,以正确地将每个 RSVP 响应与其各自的活动关联起来,特别是对于受邀参加多个活动的来宾?有没有办法根据 webhook 有效负载中的事件来区分响应,或者我应该重组数据库以更好地处理这些场景?

当前技术:

Firestore 谷歌云功能 WhatsApp API

谢谢你

我目前的计划是制作一个包含所有客人的大型电子表格。当我注意到一位客人被邀请参加 2 项活动时。我会尝试手动向他们发送不同的模板并跟踪他们的回复 例如,对于事件 A,约翰将收到模板 A,快速回复为“即将到来,不确定”。然后,对于事件 B,他们将收到模板 B,其快速回复为“是”、“否”。从那里我将跟踪他们手动选择的按钮!

node.js facebook facebook-graph-api whatsapp whatsapp-cloud-api
1个回答
0
投票

发送邀请消息时,您可以为交互式消息快速回复按钮使用不同的 ID。每个婚礼的“是”按钮和“否”按钮都有不同的 ID。

之后,一旦用户通过单击快速回复按钮进行响应,您的网络挂钩将收到所单击的 ID,您可以关联他们响应的事件。

文档中的更多详细信息:https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components#messages-object

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