【问题标题】:Add twilio webhooks dynamically from a multi-tenant django application with subdomains for twiml从具有 twiml 子域的多租户 django 应用程序动态添加 twilio webhook
【发布时间】:2021-09-23 05:52:49
【问题描述】:

我已经测试了 twilio 的 twiML api 用于在应用程序中发送和接收文本消息,它运行良好。

但是,我必须将我正在测试的特定测试子域作为 Twilio 面板上的接收 Webhook。在实际用例中,因为它是一个多租户应用程序,所以它需要是动态的,而不仅仅是单个 Webhook 端点,例如 www.first.mysite.com/sms-chat-botwww.second.mysite.com/sms-chat-bot 等。

问题是,我如何通过 twiml 或 twilio rest api 实现这一点(找不到关于此的单个文档,因为一切似乎都支持 Webhooks)。

【问题讨论】:

  • webhook 需要从面板中预先配置,如果您可以将路由放在表或函数中,则需要在应用程序中添加路由
  • 您能否澄清一下在您的应用程序中添加路由是什么意思?如果您指的是面板中的 Webhook url,则只能存在一个,因此存在问题,而我有一个具有数千个独立架构的多租户应用程序,可由多个子域访问。只是为了放在适当的上下文中,一个特定的路由/视图/控制器可以作为一个存在,但作为一个独立的实体可以被单个租户通过他们的子域访问,即 www.first.mysite.com/sms-bot、www.second.mysite.com /sms-bot、www.third.mysite.com/sms-bot 等等,而面板上的 Webhook 设置中只能有一个 /sms-bot。

标签: python django twilio webhooks twilio-twiml


【解决方案1】:

这里是 Twilio 开发者宣传员。

您可以通过 REST API 使用 Incoming Phone Number resource 为号码动态设置传入 webhook URL。

我不确定这是否是您要问的,但每个 SMS 或 Voice 号码只能有一个 webhook URL。因此,如果您需要将传入请求扇出到不同的 URL,您将需要自己编写一个 webhook 端点,然后可以继续发送请求。但希望您只是在寻找如何使数字保持最新。

【讨论】:

  • 感谢您的回复,根据我上面对@Yungandhar Chaudhari 的回复,我运行了一个多租户应用程序,因此用例是通过子域例如 www 访问单个租户架构的 url .first.mysite.com/sms-chat,www.second.mysite.com/sms-chat,www.third.mysite.com/sms-chat。所有子域都可以访问 /sms-chat 控制器,但由于它们是多租户的,因此需要在不同的时间调用,因为它们是多租户的,而 /sms-chat 只能在面板上注册为 web hook。这就是我的问题所在,我也会尝试发送的链接。
  • 您是说想要一个 Twilio 电话号码供多个应用程序/租户使用吗?
  • 刚刚看到这个。几乎,由于租户是在注册/注册时动态创建的,我无法控制他们注册的方式和时间,因此需要一种动态分配 webhook 的方法,或者至少能够通过 twiML 之类的 rest api 发送和接收 msgs做。其余的 api 适用于我们的其他用例。
  • 好消息!有一种方法可以在创建/注册时为每个租户动态生成新号码和 webhook URL。您可以使用Available Phone Numbers 搜索号码,然后使用Incoming Phone Numbers resource 购买号码并动态设置 webhook。最好给您的租户提供不同的号码,以便隔离他们之间的通信。
  • 这里是message resource。如果您打算使用它进行构建,我建议您习惯阅读 Twilio 文档。我还建议确保您的客户、您的租户拥有自己的电话号码。否则,他们最终会相互共享大量信息,如果你给他们提供单独的数据库,你可能不会打算这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 2016-06-08
  • 2021-08-08
  • 1970-01-01
  • 2015-09-21
  • 2017-04-29
  • 2020-08-01
相关资源
最近更新 更多