SMS küldése Java-ban a Twilio segítségével

1. Bemutatkozás

Az SMS üzenetek küldése sok modern alkalmazás nagy része. Az SMS-üzenetek különféle felhasználási esetekkel szolgálhatnak: kétfaktoros hitelesítés, valós idejű riasztások, chatbotok és még sok más.

Ebben az oktatóanyagban felépítünk egy egyszerű Java alkalmazást, amely SMS-eket küld a Twilio segítségével.

Számos szolgáltatás nyújt SMS-képességeket, mint például a Nexmo, a Plivo, az Amazon Simple Notification Service (SNS), a Zapier és még sok más.

A Twilio Java kliens használatával SMS-t küldhetünk csak néhány kódsorban.

2. A Twilio beállítása

A kezdéshez szükségünk lesz egy Twilio-fiókra. Kínálnak egy próbafiókot, amely elegendő platformjuk minden funkciójának teszteléséhez.

A fiókbeállítás részeként létre kell hoznunk egy telefonszámot is. Ez azért fontos, mert a próbafiókhoz ellenőrzött telefonszámra van szükség az üzenetek küldéséhez.

A Twilio egy gyors telepítési útmutatót kínál az új fiókokhoz. Miután befejeztük a fiók beállítását és igazoltuk telefonszámunkat, elkezdhetünk üzeneteket küldeni.

3. Bevezetés a TwiML-be

Mielőtt megírnánk a minta alkalmazásunkat, nézzük át gyorsan a Twilio szolgáltatásokhoz használt adatcsere formátumot.

A TwiML egy XML-en alapuló, saját tulajdonú jelölőnyelv. A TwiML üzenet elemei tükrözik a telefonáláshoz kapcsolódó különböző műveleteket: telefonálhatunk, üzenetet rögzíthetünk, üzenetet küldhetünk stb.

Íme egy példa TwiML üzenetre SMS küldéséhez:

  Minta Twilio SMS 

És itt van egy másik példa a TwiML üzenetre, amely telefonál:

  415-123-4567  

Mindkettő triviális példa, de jól megértjük, hogyan néz ki a TwiML. Olyan igékből és főnevekből áll, amelyek könnyen megjegyezhetők és közvetlenül kapcsolódnak ahhoz a művelethez, amelyet telefonon hajtunk végre.

4. SMS küldése Java-ban a Twilio segítségével

A Twilio gazdag Java klienst biztosít, amely megkönnyíti a szolgáltatásaikkal való interakciót. Ahelyett, hogy olyan kódot kellene írnunk, amely a semmiből építi fel a TwiML-üzeneteket, használhatunk dobozon kívüli Java klienst.

4.1. Függőségek

Letölthetjük a függőséget közvetlenül a Maven Central-ból, vagy hozzáadhatjuk a következő bejegyzést a listánkhoz pom.xml fájl:

 com.twilio.sdk twilio 7.20.0 

4.2. SMS küldése

A kezdéshez nézzünk meg néhány mintakódot:

Twilio.init (ACCOUNT_SID, AUTH_TOKEN); Üzenet = Message.creator (új telefonszám ("+ 12225559999"), új telefonszám (TWILIO_NUMBER), "Twilio SMS minta Java használatával") .create ();

Bontjuk kulcsfontosságú darabokra a fenti minta kódját:

  • A Twilio.init () hívás szükséges egyszer a Twilio környezet beállításához egyedi Account Sid és Token szolgáltatásunkkal
  • A Üzenet objektum a Java megfelelője a TwiML-nek elem, amit korábban láttunk
  • Message.creator () 3 paramétert igényel: Telefonszámra, Telefonszámtól és az üzenet törzsére
  • A teremt() metódus kezeli az üzenet küldését

4.3. MMS küldése

A Twilio API támogatja a multimédia üzenetek küldését is. Keverhetjük a szöveget és a képeket, hogy ez működjön, a fogadó telefonnak támogatnia kell a média üzenetküldést:

Twilio.init (ACCOUNT_SID, AUTH_TOKEN); Üzenet = Message.creator (új telefonszám ("+ 12225559999"), új telefonszám (TWILIO_NUMBER), "Twilio MMS minta Java használatával") .setMediaUrl (Promoter.listOfOne (URI.create ("// www.domain.com/ image.png "))) .create ();

5. Az üzenet állapotának követése

Az előző példákban nem erősítettük meg, hogy az üzenetet valóban kézbesítették-e. azonban A Twilio biztosít egy mechanizmust számunkra annak megállapítására, hogy egy üzenetet sikeresen eljuttattunk-e vagy sem.

5.1. Üzenet állapotkódok

Üzenet küldésekor bármikor az egyik állapota meg lesz:

  • Sorban - Twilio megkapta az üzenetet, és sorba állította a kézbesítéshez
  • Küldés - a szerver éppen az üzenetet küldi a hálózat legközelebbi upstream szolgáltatójához
  • Küldött - az üzenetet a legközelebbi upstream szolgáltató sikeresen elfogadta
  • Szállítva - A Twilio megkapta az üzenet kézbesítésének megerősítését az upstream szolgáltatótól, és adott esetben a cél kézibeszélőtől, ha elérhető
  • nem sikerült - az üzenetet nem sikerült elküldeni
  • Kézbesítetlen - a szerver kézbesítési nyugtát kapott, jelezve, hogy az üzenetet nem kézbesítették

Ne feledje, hogy az utolsó két állapotra vonatkozóan megtalálhatunk egy hibakódot, amely részletesebb részleteket tartalmaz a szállítási problémák elhárításához.

A Twilio Java kliens szinkron és aszinkron módszereket kínál az állapot lekérésére. Nézzük meg.

5.2. Szállítási állapot ellenőrzése (szinkron)

Miután létrehoztuk a Üzenet objektum, hívhatunk Message.getStatus () hogy megnézze, mely állapotban van jelenleg:

Twilio.init (ACCOUNT_SID, AUTH_TOKEN); ResourceSet messages = Message.reader (). Read (); for (Üzenetüzenet: üzenetek) {System.out.println (message.getSid () + ":" + message.getStatus ()); }

Vegye figyelembe, hogy Message.reader (). Read () távoli API hívást hajt végre, ezért használja kíméletesen. Alapértelmezés szerint az összes üzenetet visszaadja, de szűrhetjük a visszaküldött üzeneteket telefonszám vagy dátumtartomány szerint.

5.3. A kézbesítés állapotának ellenőrzése (Async)

Mivel az üzenet állapotának lekérése távoli API-hívást igényel, ez hosszú ideig tarthat. Az aktuális szál blokkolásának elkerülése érdekében a Twilio Java kliens a aszinkron verzióját is biztosítja Message.getStatus (). Read ().

Twilio.init (ACCOUNT_SID, AUTH_TOKEN); Hallható jövő jövő = Message.reader (). readAsync (); Futures.addCallback (jövő, új FutureCallback() {public void onSuccess (ResourceSet messages) {for (Üzenet üzenet: üzenetek) {System.out.println (message.getSid () + ":" + message.getStatus ()); }} public void onFailure (Throwable t) {System.out.println ("Nem sikerült lekérni az üzenet állapotát:" + t.getMessage ()); }});

Ez a guavát használja Hallható jövő interfész a Twilio válaszának feldolgozásához egy másik szálon.

6. Következtetés

Ebben a cikkben megtudtuk, hogyan lehet SMS-t és MMS-t küldeni a Twilio és a Java használatával.

Míg a TwiML az alapja a Twilio szerverekre érkező és onnan érkező összes üzenetnek, a Twilio Java kliens hihetetlenül egyszerűvé teszi az üzenetek küldését.

És mint mindig, ennek a példának a teljes kódbázisa megtalálható a GitHub-adattárunkban.


$config[zx-auto] not found$config[zx-overlay] not found