2017-05-22 1 views
0

Je me demandais quelle approche je devrais utiliser pour pouvoir recevoir des messages via Nexmo. Quelqu'un a-t-il eu de l'expérience à ce sujet parce que Nexmo ne semble pas avoir une documentation claire sur la façon de recevoir des messages par l'intermédiaire de ses bibliothèques. Toute aide serait merveilleuse.Nexmo Receiving SMS Java

+0

je Nexmo avant dans l'application de nœud, vous devez créer compte et ajoutez votre numéro et vous recevrez des sms avec le code de vérification puis ajouter jusqu'à 10 numéros à envoyer à et tous ces numéros doivent être vérifiés aussi, puis utiliser une API très simple pour envoyer –

+0

Je suis en mesure d'envoyer très facile, mais cette simplicité peut-elle être fait avec la réception de messages aussi? – Aaron

Répondre

4

Pour chaque numéro Nexmo que vous possédez, vous pouvez configurer une URL qui sera appelée par Nexmo lorsqu'un SMS est reçu à ce numéro. La requête GET contiendra des informations sur le SMS reçu en tant que paramètres de requête.

Un peu de complexité est ajoutée (pendant le développement) car Nexmo doit pouvoir atteindre une URL hébergée sur votre machine de développement, qui n'est probablement pas accessible au public sur Internet! Pour cela, vous devrez exécuter quelque chose comme Ngrok qui fournira un tunnel à un port sur votre machine locale avec une URL publique.

je recommande de commencer avec un servlet simple qui imprime ses params:

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); 
     } 
    } 
} 

... configurer à une URL pratique ...

<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> 

exécuter à la fois votre conteneur de servlet et ngrok en même temps et vérifiez que l'URL ngrok avec /YOUR_PROJECT_NAME/inbound à la fin fonctionne comme prévu. Ensuite, allez dans le tableau de bord Nexmo, Your Numbers, et appuyez sur Modifier sur le numéro que vous souhaitez recevoir des messages SMS. Entrez l'URL Ngrok que vous avez testée ci-dessus.

Envoyez maintenant un SMS au numéro que vous avez configuré, et vous devriez voir le contenu de votre message imprimé sur la console; quelque chose comme:

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

Les détails de la façon dont ces travaux sont documentés sur le Nexmo site