java - Nexmo 接收短信 Java

标签 java vonage

我想知道应该使用什么方法才能通过 Nexmo 接收消息。有没有人在这个问题上有任何经验,因为 Nexmo 似乎没有关于如何通过那里的库接收消息的明确文档。任何帮助都会很棒。

最佳答案

对于您拥有的每个 Nexmo 号码,您可以配置一个 URL,当该号码收到 SMS 时,Nexmo 将调用该 URL。 GET 请求将包含有关收到的 SMS 的信息作为请求参数。

增加了一点复杂性(在您开发时),因为 Nexmo 需要能够访问托管在您的开发计算机上的 URL,该 URL 可能不会在 Internet 上公开提供!为此,您需要运行类似 Ngrok 的命令。这将通过公共(public) URL 提供到本地计算机上端口的隧道。

我建议从一个打印出其参数的简单 servlet 开始:

public class InboundSMSServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req,
                         HttpServletResponse resp)
            throws ServletException,
                   java.io.IOException {
        System.out.println("Received: " + req.getMethod());
        for (String param : Collections.list(req.getParameterNames())) {
            String value = req.getParameter(param);
            System.out.println(param + ": " + value);
        }
    }
}

...将其配置为方便的 URL ...

<servlet>
    <servlet-name>inbound-sms</servlet-name>
    <servlet-class>getstarted.InboundSMSServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>inbound-sms</servlet-name>
    <url-pattern>/inbound</url-pattern>
</servlet-mapping>

同时运行 servlet 容器和 ngrok,并检查末尾带有 /YOUR_PROJECT_NAME/inbound 的 ngrok URL 是否按预期工作。然后进入 Nexmo 仪表板,Your Numbers ,然后在您想要接收短信的号码上点击“编辑”。输入您在上面测试的 Ngrok URL。

现在向您配置的号码发送一条短信,您应该会看到消息内容打印到控制台;像这样:

Received: GET
messageId: 0B0000004A2D09D9
to: 447520666777
text: Hello Nexmo!
msisdn: 447720123123
type: text
keyword: HELLO
message-timestamp: 2017-04-27 14:41:32

其工作原理的详细信息记录在 Nexmo site 上。

关于java - Nexmo 接收短信 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44103987/

相关文章:

Java可序列化类生成的uuid不适用于ehcache

java - Spring boot - 应用程序无法启动无法打开架构管理目标的 JDBC 连接

VoiceXML 记录整个通话,包括菜单选项

ruby-on-rails-4 - 将本地号码转换为国际格式(用于 Rails 和 Nexmo/Twilo 等服务)

java - 如何使用名为 cage 的静态方法创建一个 java 类,将 X 置于 jail 条形中?

java - 存储数据的桌面应用程序?

java - 绑定(bind)一:Many data to component in Vaadin

javascript - 使用 nexmo npm 包从服务器获取错误以发送 SMS

c# - 在 .Net Core 中将 Nexmo 连接到 Websocket 失败(远程方关闭了 WebSocket)

短信接收确认