Jak wysłać SMS z Visual Basic

Najprostszym sposobem na wysłanie SMS z Visual Basic jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Kiedy używasz tego API, będziesz wysyłać wiadomości SMS poprzez wysłanie żądania HTTP Post do bramki SMS. Żądanie HTTP Post będzie zawierać wiadomość sformatowaną w formacie json. Bramka SMS wyśle tę wiadomość SMS na telefon odbiorcy i zwróci odpowiedź HTTP 200 OK na twoje żądanie.

jak wysłać sms z visual basic
Rysunek 1 - Jak wysłać SMS z Visual Basic

Przykładowy kod wysyłania SMS w Visual Basic

Program.vb
Imports Ozeki.Libs.Rest

Module Program
    Sub Main(args As String())

        Dim configuration As New Configuration
        configuration.Username = "http_user"
        configuration.Password = "qwe123"
        configuration.ApiUrl = "http://127.0.0.1:9509/api"

        Dim msg As New Message
        msg.ToAddress = "+36201111111"
        msg.Text = "Hello, World!"

        Dim api = New MessageApi(configuration)

        Dim result = api.Send(msg)

        Console.WriteLine(result)
        Console.ReadKey()

    End Sub
End Module
	

Pobierz SendSms.vb

Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: SendSms.vb.zip (48.6Kb)

Co znajduje się w pliku SendSms.vb.zip?

Plik SendSms.vb.zip zawiera bibliotekę Ozeki.Libs.Rest, która dostarcza wszystkich narzędzi niezbędnych do wysyłania i odbierania wiadomości SMS. Znajdziesz tam również projekt SendSms, który zawiera przykładowy kod pokazujący jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.

Rysunek 2 - Co znajduje się w SendSms.vb.zip

Jak wysłać SMS z Visual Basic (Szybkie kroki)

Aby wysłać SMS z Visual Basic:

  1. Zainstaluj Ozeki SMS Gateway
  2. Podłącz Ozeki SMS Gateway do sieci komórkowej
  3. Wyślij testową wiadomość SMS z interfejsu Ozeki
  4. Utwórz użytkownika HTTP SMS API
  5. Uruchom Visual Studio
  6. Utwórz rozwiązanie o nazwie Send-SMS.sln
  7. Dodaj projekt konsolowy Visual Basic: Send-SMS.vbproj
  8. Wprowadź kod do Program.vb lub Send-SMS.vb
  9. Utwórz funkcję Visual Basic o nazwie Send_SMS
  10. Utwórz dane SMS w formacie Json
  11. Utwórz żądanie HTTP do wysłania SMS
  12. Odczytaj odpowiedź HTTP
  13. Wyświetl odpowiedź w konsoli
  14. Sprawdź logi w bramce SMS

Zainstaluj Ozeki SMS Gateway i utwórz użytkownika HTTP API

Aby móc wysyłać SMS z Visual Basic, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod Visual Basic w Visual Studio. Po instalacji następnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testową wiadomość SMS z interfejsu Ozeki, aby sprawdzić, czy twoje połączenie z siecią komórkową działa. Ostatnim krokiem przygotowania środowiska jest utworzenie użytkownika HTTP SMS API. Utwórz użytkownika z nazwą "http_user" i hasłem "qwe123", aby przykład działał bez modyfikacji.

Po skonfigurowaniu środowiska możesz uruchomić swój kod Visual Basic.

URL API HTTP do wysyłania SMS z Visual Basic

Aby wysłać SMS z Visual Basic, twoja aplikacja Visual Basic będzie musiała wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Zauważ, że adres IP (127.0.0.1) powinien zostać zastąpiony adresem IP twojej bramki SMS. Jeśli Ozeki SMS Gateway jest zainstalowany na tym samym komputerze, na którym działa aplikacja SMS Visual Basic, może to być 127.0.0.1. Jeśli jest zainstalowany na innym komputerze, powinien to być adres IP tego komputera.

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

Uwierzytelnianie HTTP do wysyłania SMS z Visual Basic

Aby uwierzytelnić klienta SMS Visual Basic, musisz wysłać nazwę użytkownika i hasło w zakodowanym ciągu base64 do serwera w żądaniu HTTP. Używany format to: base64(nazwa_użytkownika+":"+hasło). W C# możesz użyć następującego kodu do wykonania tego kodowania:

var encoding = Encoding.GetEncoding("iso-8859-1");
var usernamePassword = username + ":" + password;
var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));

Na przykład, jeśli zakodujesz nazwę użytkownika 'http_user' i hasło 'qwe123', otrzymasz następujący zakodowany ciąg base64: aHR0cF91c2VyOnF3ZTEyMw==. Aby wysłać

Nagłówek żądania HTTP do wysyłania SMS z Visual Basic

Aby wysłać wiadomości SMS, musisz uwzględnić następujące linie jako nagłówki w żądaniu HTTP. Zauważ, że uwzględniamy typ zawartości i nagłówek Authorization.

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

Żądanie HTTP do wysłania SMS-a z Visual Basic

Aby wysłać SMS, Twoja aplikacja Visual Basic wyśle żądanie HTTP podobne do poniższego. Zauważ, że to żądanie zawiera część nagłówka HTTP i część ciała HTTP. Ciało HTTP to ciąg danych zakodowany w formacie JSON. Zawiera numer odbiorcy i tekst wiadomości.

POST /api?action=sendmsg HTTP/1.1
Connection: Keep-Alive
Content-Length: 336
Content-Type: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509

{
  "messages": [
    {
      "message_id": "4b486234-1dde-4975-b233-47267e988287",
      "to_address": "+36201111111",
      "text": "Hello, World!",
      "create_date": "2021-06-11 14:19:47",
      "valid_until": "2021-06-18 14:19:47",
      "time_to_send": "2021-06-11 14:19:47",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    }
  ]
}

Odpowiedź HTTP otrzymana przez przykład SMS w Visual Basic

Gdy brama SMS odbierze to żądanie, wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, wskazujący, czy żądanie wysłania SMS-a zakończyło się sukcesem czy nie. Zwróci również strukturę zakodowaną w formacie JSON, aby dostarczyć przydatne informacje o przesłaniu wiadomości.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.118 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Fri, 11 Jun 2021 08:44:45 GMT
Server: 10/10.3.118
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": "7e4fa89b-df8a-4267-afe3-da348bf200ef",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello, World!",
        "create_date": "2021-06-11 14:19:47",
        "valid_until": "2021-06-18 14:19:47",
        "time_to_send": "2021-06-11 14:19:47",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}

Jak wysłać SMS z Visual Basic (Samouczek wideo)

Ten film pokazuje, jak utworzyć nowy projekt konsoli .Net core w Visual Studio, jak nazwać go Send-SMS.sln. Po utworzeniu rozwiązania możesz zauważyć, że Send-SMS.vbproj został dodany do rozwiązania, a domyślnie otwiera się plik Program.cs. Możesz zmienić nazwę Program.vb na Send-SMS.vb, jeśli chcesz. Zobaczysz również na filmie, jak przykładowy kod poniżej można skopiować do pliku Send-SMS.vb oraz jak go skompilować i uruchomić.

Wideo 1 - Jak pobrać i otworzyć rozwiązanie (Samouczek wideo)

SendSms.sln

Poniższy przykładowy kod jest częścią rozwiązania Visual Studio SendSms.sln. Rozwiązanie Visual Studio może zawierać wiele projektów i wiele plików. W tym rozwiązaniu znajdują się tylko dwa projekty: SendSms.vbproj, Ozeki.Libs.Rest.csproj oraz jeden plik: Program.vb.

Rysunek 3 - SendSms.sln

Jak sprawdzić, czy SMS został zaakceptowany przez użytkownika HTTP

Po wysłaniu SMS-a warto sprawdzić w swojej bramie SMS, co zostało odebrane. Możesz sprawdzić logi, otwierając szczegóły użytkownika HTTP w konsoli zarządzania Ozeki SMS Gateway. Poniższy film pokazuje, na co zwrócić uwagę.

Wideo 2 - Jak wysłać SMS za pomocą kodu Visual Basic powyżej (Samouczek wideo)

Jak sprawdzić, czy SMS został wysłany do sieci komórkowej

Ostatnim krokiem weryfikacji procedury jest sprawdzenie logów połączenia z siecią komórkową. Może być konieczne włączenie logowania w konfiguracji połączenia przed wysłaniem wiadomości, aby zobaczyć logi. Jeśli logowanie jest włączone, zobaczysz numer telefonu i tekst wysłanej wiadomości.

Wideo 3 - Jak włączyć logowanie w Ozeki SMS Gateway (Samouczek wideo)

Uruchamianie przykładu SMS w Visual Basic na Windows

Kiedy używasz systemu Windows do uruchomienia tego przykładu SMS napisanego w Visual Basic, zauważysz, że uzyskasz nieco lepszą wydajność niż podczas uruchamiania na Linuxie. Aby zrozumieć, dlaczego tak się dzieje, należy pamiętać, że Visual Basic używa frameworka .NET do wykonywania kodu. Dzieje się tak, ponieważ implementacja .NET w systemie Windows jest zoptymalizowana pod kątem wydajności, podczas gdy mono, implementacja .NET na Linuxie, ma jeszcze pewne zaległości w tej dziedzinie.

Podsumowanie

Powyższy przewodnik wyjaśnił kroki wysyłania SMS-ów z Visual Basic. Ozeki dostarcza całą wiedzę i narzędzia, aby ułatwić Twoją pracę. Jeśli kroki zostały dokładnie wykonane, wysyłanie wiadomości do klientów mobilnych z VB przy pomocy Ozeki SMS Gateway nie powinno stanowić problemu. Wysoka wydajność Ozeki SMS Gateway pozwala na wysłanie do 1000 SMS-ów na sekundę.

Upewnij się, że kontynuujesz czytanie na stronie tutoriali Ozeki, gdzie znajdziesz informacje na podobne tematy, takie jak odbieranie w VB.

Twoim kolejnym krokiem powinno być pobranie Ozeki SMS Gateway i rozpoczęcie pracy!

More information