Posielanie SMS v Jave pomocou Twilio

1. Úvod

Posielanie SMS správ je veľkou súčasťou mnohých moderných aplikácií. Existuje mnoho prípadov použitia, ktoré môžu správy SMS slúžiť: dvojfaktorová autentifikácia, upozornenia v reálnom čase, chatboti a mnoho ďalších.

V tomto výučbe zostavíme jednoduchú aplikáciu Java, ktorá odosiela SMS správy pomocou Twilio.

Existuje množstvo služieb, ktoré poskytujú možnosti SMS, ako napríklad Nexmo, Plivo, Amazon Simple Notification Service (SNS), Zapier a ďalšie.

Pomocou klienta Twilio Java, môžeme poslať SMS správu v niekoľkých riadkoch kódu.

2. Nastavenie Twilio

Na začiatok budeme potrebovať účet Twilio. Ponúkajú skúšobný účet, ktorý je dostatočný na testovanie všetkých funkcií ich platformy.

V rámci nastavenia účtu musíme vytvoriť aj telefónne číslo. Je to dôležité, pretože skúšobný účet vyžaduje na odosielanie správ overené telefónne číslo.

Twilio ponúka návod na rýchle nastavenie nových účtov. Po dokončení nastavenia účtu a overení nášho telefónneho čísla môžeme začať odosielať správy.

3. Úvod do TwiML

Predtým, ako napíšeme našu vzorovú aplikáciu, poďme sa v krátkosti pozrieť na formát výmeny údajov používaný v službách Twilio.

TwiML je patentovaný značkovací jazyk založený na XML. Prvky v správe TwiML zrkadlia rôzne akcie, ktoré môžeme podniknúť v súvislosti s telefonovaním: uskutočniť telefónny hovor, zaznamenať správu, poslať správu atď.

Tu je príklad TwiML správy pre odoslanie SMS:

  Ukážka Twilio SMS 

A tu je ďalší príklad TwiML správy, ktorá telefonuje:

  415-123-4567  

Toto sú oba triviálne príklady, ale umožňujú nám dobre pochopiť, ako vyzerá TwiML. Skladá sa zo slovies a podstatných mien, ktoré sú ľahko zapamätateľné a priamo súvisia s činom, ktorý by sme vykonali pomocou telefónu.

4. Posielanie SMS v Jave pomocou Twilio

Twilio poskytuje bohatého klienta Java, ktorý uľahčuje interakciu s ich službami. Namiesto toho, aby sme museli písať kód, ktorý vytvára správy TwiML úplne od začiatku, môžeme použiť predvoleného klienta Java..

4.1. Závislosti

Závislosť si môžeme stiahnuť priamo z Maven Central alebo pridaním nasledujúceho záznamu do nášho pom.xml spis:

 com.twilio.sdk twilio 7.20.0 

4.2. Posielam SMS

Na začiatok sa pozrime na ukážkový kód:

Twilio.init (ACCOUNT_SID, AUTH_TOKEN); Správa message = Message.creator (new PhoneNumber ("+ 12225559999"), new PhoneNumber (TWILIO_NUMBER), "Sample Twilio SMS using Java") .create ();

Rozoberme si kód vo vyššie uvedenej ukážke:

  • The Twilio.init () Na nastavenie prostredia Twilio s našim jedinečným Sid Sid a Token je potrebný jeden hovor
  • The Správa objekt je Java ekvivalent k TwiML prvok, ktorý sme videli skôr
  • Message.creator () vyžaduje 3 parametre: Na telefónne číslo, Z telefónneho čísla a telo správy
  • The vytvoriť () metóda vybavuje odoslanie správy

4.3. Posielanie MMS

Rozhranie Twilio API podporuje aj odosielanie multimediálnych správ. Môžeme kombinovať text a obrázky, aby to fungovalo tak, že prijímajúci telefón musí podporovať mediálne správy:

Twilio.init (ACCOUNT_SID, AUTH_TOKEN); Správa message = Message.creator (new PhoneNumber ("+ 12225559999"), new PhoneNumber (TWILIO_NUMBER), "Sample Twilio MMS using Java") .setMediaUrl (Promoter.listOfOne (URI.create ("// www.domain.com/) image.png "))) .create ();

5. Stav sledovacej správy

V predchádzajúcich príkladoch sme nepotvrdili, či bola správa skutočne doručená. Avšak Twilio poskytuje mechanizmus, ktorý nám umožňuje určiť, či bola správa úspešne doručená alebo nie.

5.1. Kódy stavu správy

Pri odosielaní správy bude mať kedykoľvek jeden zo stavov:

  • V poradí - Twilio prijal správu a zaradil ju do frontu na doručenie
  • Posielam - server práve odosiela vašu správu najbližšiemu nadradenému operátorovi v sieti
  • Odoslané - správa bola úspešne prijatá najbližším operátorom proti prúdu
  • Doručené - Twilio dostalo potvrdenie o doručení správy od operátora, ktorý odoslal prenos, a prípadne od cieľového telefónu, ak je k dispozícii
  • Zlyhalo - správu nebolo možné odoslať
  • Nedoručené - server prijal potvrdenie o doručení označujúce, že správa nebola doručená

Upozorňujeme, že pre posledné dva stavy môžeme nájsť chybový kód s konkrétnejšími podrobnosťami, ktorý nám pomôže vyriešiť problémy s doručením.

Twilio Java Client ponúka synchrónne a asynchrónne metódy na získanie stavu. Pozrime sa na to.

5.2. Kontrola stavu doručenia (synchrónna)

Len čo sme vytvorili Správa objekt, môžeme zavolať Message.getStatus () zistiť, v ktorom stave sa momentálne nachádza:

Twilio.init (ACCOUNT_SID, AUTH_TOKEN); ResourceSet messages = Message.reader (). Read (); pre (Správa správy: správy) {System.out.println (message.getSid () + ":" + message.getStatus ()); }

Poznač si to Message.reader (). Read () uskutoční vzdialené volanie API, takže ho používajte s mierou. V predvolenom nastavení vráti všetky správy, ktoré sme poslali, ale vrátené správy môžeme filtrovať podľa telefónnych čísel alebo rozsahu dátumov.

5.3. Kontrola stavu doručenia (asynchr.)

Pretože načítanie stavu správy vyžaduje vzdialené volanie API, môže to trvať dlho. Aby sa zabránilo blokovaniu aktuálneho vlákna, klient Twilio Java poskytuje aj asynchrónnu verziu servera Message.getStatus (). Read ().

Twilio.init (ACCOUNT_SID, AUTH_TOKEN); ListenableFuture future = Message.reader (). readAsync (); Futures.addCallback (budúcnosť, nová FutureCallback() {public void onSuccess (správy zdrojov) {for (správa správ: správy) {System.out.println (message.getSid () + ":" + message.getStatus ()); }} public void onFailure (Throwable t) {System.out.println ("Nepodarilo sa získať stav správy:" + t.getMessage ()); }});

Toto používa guavu ListenableFuture rozhranie na spracovanie odpovede od Twilio na inom vlákne.

6. Záver

V tomto článku sme sa naučili, ako posielať SMS a MMS pomocou Twilio a Java.

Zatiaľ čo TwiML je základom všetkých správ do a zo serverov Twilio, vďaka klientovi Twilio Java je odosielanie správ neuveriteľne ľahké.

Celú databázu kódov pre tento príklad nájdete ako vždy v našom úložisku GitHub.


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