Kako načrtovati SMS v Javi

Najenostavnejši način za pošiljanje SMS-ov iz Jave je uporaba vgrajenega HTTP/Rest SMS API-ja Ozeki SMS Gateway. Ko uporabljate ta API, boste SMS sporočila pošiljali z izdajo HTTP Post zahteve proti SMS prehodu. HTTP Post zahteva bo vsebovala sporočilo v json formatu. SMS prehod bo poslal ta SMS prejemniku in vrnil HTTP 200 OK odgovor na vašo zahtevo.

kako poslati načrtovan sms iz java
Slika 1 - Kako poslati načrtovan SMS iz Jave

Java koda za pošiljanje sms-ov na mobilne naprave

Vzorec Java sms kode spodaj prikazuje, kako lahko pošiljate SMS z uporabo http rest sms api-ja Ozeki SMS Gateway z uporabo knjižnice Java Ozeki.Libs.Rest. Ta knjižnica vam je na voljo brezplačno in jo lahko uporabljate in spreminjate v katerem koli od vaših projektov.

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 = "Pozdravljen svet!";
        msg.TimeToSend = LocalDateTime.parse("2021-06-11T13:52:00");

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

Kako uporabiti Java sms primer:

Uporabite lahko razred Message za ustvarjanje SMS in razred MessageApi lahko uporabite za pošiljanje SMS-a proti SMS prehodu. SMS prehod bo vaše sporočilo posredoval mobilnemu omrežju prek brezžične povezave ali prek interneta.

Prenesi SendScheduledSms.java

Izvorna koda, razložena v tem članku, je na voljo za brezplačen prenos, uporabo in spreminjanje.
Prenesi: SendScheduledSms.java.zip (80,2Kb)

Kaj je v datoteki SendScheduledSms.java.zip?

Datoteka SendScheduledSms.java.zip vsebuje knjižnico Ozeki, ki vam ponuja vsa orodja, potrebna za pošiljanje in prejemanje SMS sporočil. V projektu boste našli tudi datoteko Main.java, ki vsebuje primer kode, ki prikazuje kako poslati SMS. Ta primer kode je naveden spodaj.

Slika 2 - SendScheduledSms.java mapa

Kako poslati načrtovan SMS iz Jave (Hitri koraki)

Za pošiljanje načrtovanih sms-ov iz Jave:

  1. Namestite Ozeki SMS Gateway
  2. Povežite Ozeki SMS Gateway z mobilnim omrežjem
  3. Pošljite testni sms iz Ozeki GUI
  4. Ustvarite uporabnika HTTP sms api
  5. Apache NetBeans
  6. Ustvarite projekt z imenom SendScheduledSms
  7. Vstavite kodo v novo ustvarjeno datoteko Main.java ali uporabite datoteko Main.java v .zip
  8. Ustvarite SMS z ustvarjanjem novega objekta Message
  9. Ustvarite api za pošiljanje vašega sporočila
  10. Uporabite metodo Send za pošiljanje vašega sporočila
  11. Določite atribut TimeToSend na novo ustvarjenem sporočilu
  12. Preberite odzivno sporočilo na konzoli
  13. Preverite dnevnike v SMS prehodu
Namestite Ozeki SMS Gateway in ustvarite uporabnika HTTP API

Da lahko pošiljate SMS iz Jave, morate najprej namestiti Ozeki SMS Gateway. SMS prehod lahko namestite na istem računalniku, kjer razvijate svojo Java kodo v Apache NetBeans. Po namestitvi je naslednji korak povezovanje Ozeki SMS Gateway z mobilnim omrežjem. Lahko pošljete testni sms iz Ozeki GUI, da preverite, ali vaša mobilna omrežna povezava deluje. Končni korak za pripravo vašega okolja je ustvarjanje uporabnika HTTP sms api. Ustvarite uporabnika z uporabniškim imenom "http_user" in geslom "qwe123", da primer deluje brez sprememb.

Ko je okolje pripravljeno, lahko zaženete svojo Java kodo.

HTTP API url za pošiljanje sms-ov iz Jave

Za pošiljanje SMS-ov iz Jave bo vaša Java aplikacija morala izdati HTTP zahtevo proti SMS prehodu. API url je prikazan spodaj. Upoštevajte, da je treba IP naslov (127.0.0.1) zamenjati z IP naslovom vašega SMS prehoda. Če je Ozeki SMS Gateway nameščen na istem računalniku, kjer teče Java sms aplikacija, je to lahko 127.0.0.1. Če je nameščen na drugem računalniku, mora biti to IP naslov tega računalnika.

http://127.0.0.1:9509/api?action=rest
	
HTTP avtentikacija za pošiljanje sms-ov iz Jave

Za avtentikacijo Java sms odjemalca morate poslati uporabniško ime in geslo v base64 kodiranem nizu na strežnik v HTTP zahtevi. Uporabljen format je: base64(uporabniško_ime+":"+geslo). V Javi lahko za to kodiranje uporabite naslednjo kodo:

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

Na primer, če kodirate uporabniško ime 'http_user' in geslo 'qwe123', boste dobili naslednji base64 kodiran niz: aHR0cF91c2VyOnF3ZTEyMw==. Za pošiljanje

HTTP glava zahtevka za pošiljanje načrtovanih SMS sporočil iz Jave

Za pošiljanje načrtovanega SMS sporočila morate vključiti naslednje vrstice kot glave v HTTP zahtevku. Upoštevajte, da vključujemo vrsto vsebine in glavo za avtorizacijo.

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

HTTP zahtevek za pošiljanje SMS iz Jave

Za oddajo SMS-a bo vaša Java aplikacija poslala HTTP zahtevek, podoben spodnjemu. Upoštevajte, da ta zahtevek vsebuje del z glavo HTTP in del s telesom HTTP. Telo HTTP je niz podatkov, kodiran v JSON. Vsebuje številko prejemnika in besedilo sporočila.

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

HTTP odziv, prejet v Java SMS primeru

Ko SMS prehod prejme ta zahtevek, bo ustvaril HTTP odziv. HTTP odziv bo vseboval statusno kodo, ki bo pokazala, ali je bila oddaja SMS-a uspešna ali ne. Prav tako bo vrnil strukturo, kodirano v JSON, ki vam bo zagotovila koristne podrobnosti o oddaji sporočil.

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"
    }
  ]
}
}
	

Kako poslati SMS iz Jave z uporabo Java SMS API (Video vadnica)

Ta video vam pokaže, kako ustvariti nov projekt v Apache NetBeans, kako ga poimenovati v SendScheduledSms. Ko je rešitev ustvarjena, lahko opazite, da je v vašem projektu v mapi Source Packages mapa z imenom <default package>. Tu boste ustvarili ali prilepili datoteko Main.java. Nato morate mapo Ozeki prilepiti v mapo Source Packages in to so vse priprave, ki jih potrebujete za pošiljanje SMS-a z Javo.

Video 1 - Kako prenesti Ozeki.Libs.Rest in nastaviti svoj projekt (Video vadnica)

Java koda za pošiljanje SMS na mobilno napravo

Spodnji Java SMS primer kode prikazuje, kako lahko pošiljate SMS z uporabo http rest SMS API-ja Ozeki SMS Gateway z uporabo knjižnice Java Ozeki.Libs.Rest. Ta knjižnica vam je na voljo brezplačno in jo lahko uporabljate in spreminjate v katerem koli od svojih projektov.

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

Kako uporabljati Java SMS primer:

Razred Message lahko uporabite za ustvarjanje SMS-a in razred MessageApi lahko uporabite za pošiljanje SMS-a na SMS prehod. SMS prehod bo vaše sporočilo posredoval v mobilno omrežje bodisi prek brezžične povezave bodisi prek interneta.

Java SMS primer: Main.java

Slika 3 - Projekt SendScheduledSms

Kako preveriti, ali je SMS sprejel HTTP uporabnik

Po oddaji SMS-a je dobro preveriti vaš SMS prehod, da vidite, kaj je prejel. Dnevnik lahko preverite tako, da odprete podrobnosti HTTP uporabnika iz konzole za upravljanje Ozeki SMS Gateway. Naslednji video vam pokaže, kaj morate iskati.

Video 2 - Kako poslati načrtovan SMS z zgornjo Java kodo (Video vadnica)

Zaključek

Ta članek vam je omogočil vpogled v razporejanje SMS sporočil v Javi z Ozeki SMS Gateway. Če želite pošiljati besedilna sporočila ob določenem času, je razporejanje SMS sporočil lahko zelo koristno. Z uporabo tega vodnika in zgornje kode pridobite vse potrebno znanje in orodja za razporejanje SMS sporočil. Ozeki SMS Gateway vam omogoča beleženje sporočil v bazo podatkov in ponuja številne poročevalske zmogljivosti, da vam zagotovi čim več informacij o SMS komunikaciji.

Nadaljujte z branjem na Ozekijevi strani z vadnicami, kjer najdete več informacij o temah, kot sta prejemanje v Javi.

Edino, kar morate storiti zdaj, je prenesti Ozeki SMS Gateway in začeti delati!

More information