Мне было интересно, какой подход я должен использовать, чтобы иметь возможность получать сообщения через Nexmo. Есть ли у кого-нибудь опыт по этой проблеме, потому что Nexmo, похоже, не имеет четкой документации о том, как получать сообщения через библиотеки. Любая помощь будет замечательной.
Nexmo Получение SMS Java
Ответы (1)
Для каждого номера Nexmo, которым вы владеете, вы можете настроить URL-адрес, который будет вызываться Nexmo при получении SMS на этот номер. Запрос GET будет содержать информацию о полученном SMS в качестве параметров запроса.
Добавляется небольшая сложность (пока вы разрабатываете), потому что Nexmo должен иметь возможность доступа к URL-адресу, размещенному на вашем компьютере для разработки, который, вероятно, не является общедоступным в Интернете! Для этого вам нужно запустить что-то вроде Ngrok, который обеспечит туннель к порту на вашем локальном компьютере с общедоступный URL-адрес.
Я бы рекомендовал начать с простого сервлета, который выводит свои параметры:
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>
Запустите контейнер сервлетов и ngrok одновременно и убедитесь, что URL-адрес ngrok с /YOUR_PROJECT_NAME/inbound
в конце работает должным образом. Затем перейдите на панель инструментов Nexmo, выберите Ваши номера и нажмите "Изменить" на номере, который вы хотите получить. СМС-сообщения на. Введите URL-адрес Ngrok, который вы протестировали выше.
Теперь отправьте SMS на номер, который вы настроили, и вы должны увидеть содержимое вашего сообщения, напечатанное на консоли; что-то типа:
Received: GET
messageId: 0B0000004A2D09D9
to: 447520666777
text: Hello Nexmo!
msisdn: 447720123123
type: text
keyword: HELLO
message-timestamp: 2017-04-27 14:41:32
Подробная информация о том, как это работает, задокументирована на сайте Nexmo.