Cum să programezi un SMS în Java

Cea mai simplă metodă de a trimite SMS din Java este utilizarea API-ului HTTP/Rest SMS încorporat al Ozeki SMS Gateway. Când folosești acest API, vei trimite mesaje SMS prin efectuarea unei cereri HTTP Post către gateway-ul SMS. Cererea HTTP Post va conține un mesaj formatat în format json. Gateway-ul SMS va trimite acest SMS către telefonul destinatar și va returna un răspuns HTTP 200 OK la cererea ta.

cum să trimiți un sms programat din java
Figura 1 - Cum să trimiți un SMS programat din Java

Cod Java pentru a trimite sms pe mobil

Exemplul de cod Java sms de mai jos demonstrează cum poți trimite SMS folosind API-ul http rest sms al Ozeki SMS Gateway utilizând biblioteca Java Ozeki.Libs.Rest. Această bibliotecă este oferită gratuit și o poți folosi și modifica în oricare dintre proiectele tale.

Main.java
import Ozeki.Libs.Rest.*;
import java.time.LocalDateTime;

public class Main {

    public static void main(String[] args) {

        var configuration = new Configuration();
        configuration.Username = "http_user";
        configuration.Password = "qwe123";
        configuration.ApiURL = "http://127.0.0.1:9509/api";

        var msg = new Message();
        msg.ToAddress = "+36201111111";
        msg.Text = "Hello world!";
        msg.TimeToSend = LocalDateTime.parse("2021-06-11T13:52:00");

        var api = new MessageApi(configuration);
        
        var result = api.Send(msg);
        
        System.out.println(result);
    }
}
	

Cum să folosești exemplul Java sms:

Poți folosi clasa Message pentru a crea SMS-ul și poți folosi clasa MessageApi pentru a trimite SMS-ul către gateway-ul SMS. Gateway-ul SMS va transmite mesajul tău către rețeaua mobilă fie printr-o conexiune wireless fie prin Internet.

Descarcă SendScheduledSms.java

Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: SendScheduledSms.java.zip (80.2Kb)

Ce conține fișierul SendScheduledSms.java.zip?

Fișierul SendScheduledSms.java.zip conține biblioteca Ozeki, care îți oferă toate instrumentele necesare pentru a trimite și primi mesaje SMS. Vei găsi de asemenea un fișier Main.java în proiect, care conține codul exemplu pentru a-ți arăta cum să trimiți un SMS. Acest cod exemplu este listat mai jos.

Figura 2 - Directorul SendScheduledSms.java

Cum să trimiți SMS programat din Java (Pași rapizi)

Pentru a trimite SMS programat din Java:

  1. Instalează Ozeki SMS Gateway
  2. Conectează Ozeki SMS Gateway la rețeaua mobilă
  3. Trimite un SMS test din Ozeki GUI
  4. Creează un utilizator HTTP sms api
  5. Apache NetBeans
  6. Creează un proiect numit SendScheduledSms
  7. Introdu codul într-un fișier Main.java nou creat sau folosește fișierul Main.java din .zip
  8. Creează SMS-ul prin crearea unui nou obiect Message
  9. Creează un api pentru a trimite mesajul tău
  10. Folosește metoda Send pentru a trimite mesajul tău
  11. Specifică atributul TimeToSend al mesajului nou creat
  12. Citește mesajul de răspuns pe consolă
  13. Verifică jurnalele în gateway-ul SMS

Instalează Ozeki SMS Gateway și creează un utilizator HTTP API

Pentru a putea trimite SMS din Java, mai întâi trebuie să instalezi Ozeki SMS Gateway. Gateway-ul SMS poate fi instalat pe același computer unde dezvolți codul Java în Apache NetBeans. După instalare, următorul pas este să conectezi Ozeki SMS Gateway la rețeaua mobilă. Poți creezi un utilizator HTTP sms api. Creează un utilizator cu numele de utilizator "http_user" și parola "qwe123" pentru a face exemplul să funcționeze fără modificări.

După ce mediul este configurat, poți rula codul Java.

URL API HTTP pentru a trimite SMS din Java

Pentru a trimite SMS din Java, aplicația ta Java va trebui să efectueze o cerere HTTP către gateway-ul SMS. URL-ul API este afișat mai jos. Reține că adresa IP (127.0.0.1) ar trebui să fie înlocuită cu adresa IP a gateway-ului tău SMS. Dacă Ozeki SMS Gateway este instalat pe același computer unde rulează aplicația Java sms, aceasta poate fi 127.0.0.1. Dacă este instalat pe un computer diferit, ar trebui să fie adresa IP a acelui computer.

http://127.0.0.1:9509/api?action=rest
	

Autentificare HTTP pentru a trimite SMS din Java

Pentru a autentifica clientul Java sms, trebuie să trimiți numele de utilizator și parola într-un șir codificat base64 către server într-o cerere HTTP. Formatul folosit este: base64(username+":"+password). În Java poți folosi următorul cod pentru a face această codificare:

var usernamePassword = username + ":" + password;
var encodedUsernamePassword = usernamePassword.getBytes();
return "Basic " + Base64.getEncoder().encodeToString(encodedUsernamePassword);
	

De exemplu, dacă codezi numele de utilizator 'http_user' și parola 'qwe123', vei obține următorul șir codificat base64: aHR0cF91c2VyOnF3ZTEyMw==. Pentru a trimite

Antetul cererii HTTP pentru trimiterea SMS-ului programat din Java

Pentru a trimite mesajul SMS programat, trebuie să includeți următoarele linii ca antet în cererea HTTP. Rețineți că includem un tip de conținut și un antet de autorizare.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

Cererea HTTP pentru trimiterea SMS-ului din Java

Pentru a trimite SMS-ul, aplicația dvs. Java va trimite o cerere HTTP similară cu cea de mai jos. Rețineți că această cerere conține o parte de antet HTTP și o parte de corp HTTP. Corpul HTTP este un șir de date codificat JSON. Acesta conține numărul destinatarului și textul mesajului.

POST /api?action=sendmsg HTTP/1.1
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
Content-Length: 320
Content-Type: application/json
Accept: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Java-http-client/16.0.1

{
"messages":	[
	{
		"message_id": "5b9cea01-6bc0-42a7-9409-7b86eedf851b",
		"submit_report_requested": true,
		"view_report_requested": true,
		"valid_until": "2021-06-18 13:49:36",
		"time_to_send": "2021-06-11 13:52:00",
		"to_address": "+36201111111",
		"text": "Hello world!",
		"create_date": "2021-06-11 13:49:36",
		"delivery_report_requested": true
	}
]
}
	

Răspunsul HTTP primit de exemplul Java pentru SMS

Odată ce gateway-ul SMS primește această cerere, va genera un răspuns HTTP. Răspunsul HTTP va conține un cod de stare, pentru a indica dacă cererea de trimitere a SMS-ului a fost reușită sau nu. De asemenea, va returna o structură codificată JSON pentru a vă oferi detalii utile despre trimiterea mesajelor.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.120 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Fri, 11 Jun 2021 13:37:11 GMT
Server: 10/10.3.120
Transfer-Encoding: chunked

{
"http_code": 200,
"response_code": "SUCCESS",
"response_msg": "Messages queued for delivery.",
"data": {
  "total_count": 1,
  "success_count": 1,
  "failed_count": 0,
  "messages": [
    {
      "message_id": "5b9cea01-6bc0-42a7-9409-7b86eedf851b",
      "from_station": "%",
      "to_address": "+36201111111",
      "to_station": "%",
      "text": "Hello world!",
      "create_date": "2021-06-11 13:49:36",
      "valid_until": "2021-06-18 13:49:36",
      "time_to_send": "2021-06-11 13:52:00",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": false,
      "tags": [
        {
          "name": "Type",
          "value": "SMS:TEXT"
        }
      ],
      "status": "SUCCESS"
    }
  ]
}
}
	

Cum să trimiteți SMS din Java folosind API-ul Java pentru SMS (Tutorial video)

Acest videoclip vă arată cum să creați un proiect nou în Apache NetBeans, cum să-l denumiți SendScheduledSms. Odată ce soluția este creată, s-ar putea să observați că există un folder numit <default package> în proiectul dvs. în interiorul folderului Source Packages. Aici veți crea sau lipi fișierul Main.java. Apoi, trebuie să lipiți folderul Ozeki în folderul Source Packages și acestea sunt toate pregătirile necesare pentru a trimite un SMS folosind Java.

Video 1 - Cum să descărcați Ozeki.Libs.Rest și să vă configurați proiectul (Tutorial video)

Cod Java pentru trimiterea SMS-ului pe mobil

Exemplul de cod Java pentru SMS de mai jos demonstrează cum puteți trimite SMS folosind API-ul REST HTTP pentru SMS al Ozeki SMS Gateway folosind biblioteca Java Ozeki.Libs.Rest. Această bibliotecă vă este oferită gratuit și o puteți utiliza și modifica în oricare dintre proiectele dvs.

Main.java
import Ozeki.Libs.Rest.*;
import java.time.LocalDateTime;

public class Main {

    public static void main(String[] args) {

        var configuration = new Configuration();
        configuration.Username = "http_user";
        configuration.Password = "qwe123";
        configuration.ApiURL = "http://127.0.0.1:9509/api";

        var msg = new Message();
        msg.ToAddress = "+36201111111";
        msg.Text = "Hello world!";
        msg.TimeToSend = LocalDateTime.parse("2021-06-11T13:52:00");

        var api = new MessageApi(configuration);
        
        var result = api.Send(msg);
        
        System.out.println(result);
    }
}
	

Cum să utilizați exemplul Java pentru SMS:

Puteți utiliza clasa Message pentru a crea SMS-ul și puteți utiliza clasa MessageApi pentru a trimite SMS-ul către gateway-ul SMS. Gateway-ul SMS va transmite mesajul dvs. către rețeaua mobilă fie printr-o conexiune wireless fie prin Internet.

Exemplu Java pentru SMS: Main.java

Figura 3 - Proiectul SendScheduledSms

Cum să verificați că SMS-ul a fost acceptat de utilizatorul HTTP

După ce SMS-ul a fost trimis, este o idee bună să verificați gateway-ul dvs. SMS, pentru a vedea ce a primit. Puteți verifica jurnalul deschizând detaliile utilizatorului HTTP din consola de management Ozeki SMS Gateway. Următorul videoclip vă arată ce să căutați.

Video 2 - Cum să trimiteți un SMS programat cu codul Java de mai sus (Tutorial video)

Concluzie

Acest articol a oferit o perspectivă asupra programării SMS-urilor în Java cu Ozeki SMS Gateway. Dacă doriți să trimiteți mesaje text la un anumit moment, programarea SMS-urilor poate fi foarte utilă. Folosind acest ghid și codul de mai sus, veți avea toate cunoștințele și instrumentele necesare pentru a face posibilă programarea SMS-urilor. Ozeki SMS Gateway vă permite să înregistrați mesaje într-o bază de date și oferă numeroase capabilități de raportare pentru a vă oferi cât mai multe informații despre comunicarea prin SMS.

Continuați lectura pe pagina de tutoriale Ozeki, unde puteți găsi mai multe informații despre subiecte precum primirea în Java.

Singurul lucru care rămâne de făcut acum este să descărcați Ozeki SMS Gateway și să începeți să lucrați!

More information