我有一个多租户应用程序,每个租户(客户)都可以管理他们的产品并通过 WhatsApp 与客户互动。这是我的设置和我面临的问题:
问题:
我尝试过的:
我需要什么:
我正在寻找一种可扩展的解决方案:
您的问题有两个不同的部分,第二个部分更加棘手/复杂,因为它取决于您想要实现的架构。请提供更多设计信息,以便我们更好地帮助您。
有没有办法克服向单个 WhatsApp Business 帐户添加多个电话号码的限制?
是的,您需要验证您的业务。验证后,您可以添加更多商家号码。请按照此处 Meta 的说明进行操作: 元业务验证
如何使用 WhatsApp Business Cloud API 支持 70 个租户(每个租户都有唯一的电话号码和 WhatsApp 机器人)?
这取决于您使用的架构和编程语言。这是在多租户设置中处理这种情况的可扩展方法:
消息网关:
import redis
redis_client = redis.StrictRedis()
def enqueue_message(message):
tenant_id = message["metadata"]["phone_number_id"] # Unique for each WhatsApp number
queue_name = f"queue:{tenant_id}"
redis_client.rpush(queue_name, message)
工人:
import time
def processor_1(tenant_id, message):
print(f"First Processor {tenant_id}: {message}")
def processor_2(tenant_id, message):
print(f"Second Processor {tenant_id}: {message}")
def worker(tenant_id):
queue_name = f"queue:{tenant_id}"
while True:
message = redis_client.lpop(queue_name)
if message:
if tenant_id == "foo":
processor_1(tenant_id, message)
else:
processor_2(tenant_id, message)
else:
time.sleep(1) # No messages, wait and retry
这是一个简化的示例。对于更全面的实现(并且我在生产中运行),您可以参考这个示例: