使用 node.js 限制每个用户的 SMS 消息。 (Twilio)

Limiting SMS messages per user with node.js. (Twilio)

所以这几天我一直在摆弄node.js和twilio。我设法得到它 运行 并创建了一个不错的关键字检查和响应小系统。问题是我需要一种方法来防止对话超出 X 数量的交换消息。任何可以让用户停止消息传递或让 twilio 停止接受它们的东西都会很棒。

我已经调查过诸如阻止他们的号码,甚至尝试为他们激活 STOP 关键字之类的事情,但没有任何结果。我想到的最好的办法是创建一个入站和出站消息计数器,并发送一个最终消息,说明 "You've reached the conversation limit. You'll be charged X amount per every new message sent and received" 来吓唬他们 off.I 我不太确定该选项是否合乎道德甚至合法。

我不想有一天醒来发现我欠了 5000 美元的 SMS 费用,因为即使用户已经完成了所有可能的对话选项,我的号码还是被发送了垃圾邮件。任何帮助表示赞赏。

编辑:我想我已经找到了我的答案,所以我会 post 在这里以防其他人有同样的想法。 https://support.twilio.com/hc/en-us/articles/223181648-Is-there-a-way-to-block-incoming-SMS-on-my-Twilio-phone-number-

如评论中所述,这个具体问题是题外话。但是,我会说明一些事情。

截至目前,您无法控制收到的消息。 Twilio 会为您做到这一点。例如,twilio 仅对验证为无垃圾邮件的号码向您收费。您可以从他们的支持人员那里获得更多信息。

在你这边,你可以尝试一些其他的事情。

  1. 控制外发消息(例如,检测垃圾邮件,如果有则不发送自动回复)
  2. 坚持基本计划

为了控制应用程序的传入负载,有一个名为 queuep(npm install queuep) 的库。您可以轻松编写垃圾邮件检测逻辑并避免大量邮件。还有其他好处,例如节流和记忆。

但这并不能保证您不为负载付费(如果有的话)。这是因为,计费甚至发生在 NodeJs 应用程序接收到消息之前。唯一可能控制它的地方是通过 twilio 管理面板

Twilio 账单是预付费的(对我来说),所以我认为您不会“欠 $5000”。他们可能会消耗掉您的信用额度,如果您设置了自动充值,那可能是个问题。

也就是说,有多种方法可以在不编码的情况下控制支出。我建议您查看以下内容:

  1. Account Triggers - 获取通知
  2. Projects - 隔离生产中的 numbers/apps

一些编码思路

我猜您正在使用 twilio 号码来桥接两个提供匿名的用户。你提出的应该是可行的。

  1. 使用函数以您自己的逻辑查询您的日志和速率限制 Docs: Usage Records
  2. 使用数据库,记录交易,用自己的逻辑查询数据库

注意:如果传入的消息是由传入的sms/mms生成的,无论消息是否中继,都会收取传入费用。

另外,有可用的速率限制 npm 模块(我没有探索过它们)。例如// npm limiter