web-services - 通过多种传输方式提供通知的 Web 服务

标签 web-services notifications alert saas instant-messaging

我想为我的客户启用事件通知。发送通知的方式有很多种:电子邮件、短信、XMPP/其他 IM、通过 SIP 预先录制的语音消息、电话特定的消息推送服务、REST 回调等。

我不想自己开发所有这些传输,因此我需要一个可以为客户管理这些通知的 Web 服务。另外,我不想存储电子邮件/电话/其他个人身份信息。

通知是事务性的(即,它不会向每个人大量传递相同的消息)。欢迎付费解决方案。

http://pagerduty.com但这是

  • 旨在在企业内部工作,而不是与外部客户合作
  • 专注于事件响应的完整周期,而不是简单的消息传递

因此,这给受访者带来了更多负担,我希望用户可以零费力地进行设置。

Monitis另一个例子。它有包括 Twitter 在内的多种传输方式,但它又是为内部人士设计的,而不是为大量的服务订阅者设计的。

Amazon SNS 似乎级别太低,因为它只管理推送通知的传递,但为了显示它们,我必须编写一个我不想要的移动应用程序。

XMPP 服务器如 How best to deliver notifications to various IM / notification services? 中所述传统上支持不同传输的想法,但我想要第三方托管服务。

Twilio只有 2 种传输方式:短信和语音调用,并且更面向完整的双向通信。

我什至无法找到正确的 Google 关键字来搜索我想要的服务/SaaS。

问题是,有这样的服务吗?一些样本可以让我知道要寻找什么。

最佳答案

这来得很晚,也许太晚了,但是......

您不需要实现任何传输,但可能需要构建一些网关,并且您很可能需要组装与每个网关通信的应用程序。您不太可能为此找到任何服务。

您已经概述了该策略。你基本上有这些部分:

  1. 交通
  2. 网关
  3. 申请

每个传输都是通过某个客户端通过 API 或 CLI 访问的 - 因此您需要弄清楚您的环境是什么。 Java 可能是一个不错的选择,但其他跨平台环境也可能有效。 Apache ServiceMix 等现有基础设施支持其中一些传输:

https://cwiki.apache.org/confluence/display/SM/Components+list

可能还有其他具有类似、不同传输方式的中间件。

您可能需要为每种传输类型的每个提供商提供一个网关。您也许能够找到能够为多种运输提供充分服务的提供商,例如Twilio 的短信和语音,但这可能是异常(exception)。您可能还会发现,由于传输(以及功能)的差异,为每种传输类型构建网关会更方便。因此,您的 SMS 网关中可能有两个已配置的提供商,一个用于 Twilio,另一个用于 Kannel,并且您的 Twilio 帐户可能在 SMS 网关和 SIP 网关中使用。

最后一步是将您的应用程序组装成有意义的东西。这可能是这样的:

sent.......: "Thanks for your purchase, ${username}!"

发送到可能由用户配置的 channel (即提供商-传输对),并能够收集用户的响应:

response...: "It was a pleasure! --Bob"

您将需要存储每个传输端点的基础信息,例如短信的电话号码、聊天的用户名等,因此,如果您有需要解决的 PII 安全问题,您需要考虑这一点。一种选择可能是将所有 PII 移交给每个提供商,但您仍然需要在每个提供商中保留用户的每个帐户,并且您可能需要了解有关用户的信息,例如上面的“${username}” ,在您的应用程序中适本地个性化您的通知。因此,从应用程序中删除所有 PII 似乎不太可能。

我不确定这有多大帮助,但也许它会给你一些想法。

关于web-services - 通过多种传输方式提供通知的 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22906898/

相关文章:

web-services - 处理 REST Web 服务中的操作

android - 升级到最新的 android/firebase sdk,这个 azure 通知中心示例 - xamarin forms

android - Android系统杀死进程: does the on going notifications are removed too?

ios - UIAlertController 在关闭后一直重新出现

连接到逻辑应用 Webhook 的 Azure 警报操作每次触发警报时都会触发两次

javascript - 我想在使用alertify单击 "ok"后重新加载index.html页面

java - 如何在 Java(REST) 应用程序中对用户进行身份验证?

java - 将 SOAPHandler 与 spring-boot SOAP Web 服务一起使用

c# - 我的 EventWaitHandle 说 "Access to the path is denied",但不是

ios - 即使发送(消息)成功,通知也未到达 iOS 设备