Dokumentacja API sender sms

Podobne dokumenty
Dokumentacja API. SOAP - webservice v

Dokumentacja smsapi wersja 1.4

Dokumentacja techniczna API systemu SimPay.pl

Sms. v Strona 1 z 17. FUTURE-SOFT SP. Z O.O. ul. Gosławicka2/ , Opole tel sales@future-soft.pl NIP:

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Specyfikacja HTTP API. Wersja 1.6

OPIS TECHNICZNY SYSTEM HOSTED SMS

Wdrożenie modułu płatności eservice dla systemu OpenCart 2

Instrukcja pozyskania identyfikatora - UID

INSTRUKCJA REJESTRACJI

DOKUMENTACJA TECHNICZNA SMS API MT

FedEx efaktura Instrukcja Użytkownika

Instrukcja korzystania z funkcjonalności elektronicznych powiadomień (SMS, ) dostępnej w systemie POMOST Std

Wersja dokumentu: Data: 28 kwietnia 2015r.

Specyfikacja techniczna. mprofi Interfejs API

3S TeleCloud - Aplikacje Instrukcja użytkowania usługi 3S SMS SYSTEM

Zawartość. 1. Doładowanie konta na stronie gsmservice.pl

Instrukcja Użytkownika Systemu Zarządzania Tożsamością Wersja. 1.0

INSTRUKCJA instalacji aplikacji elisty.pl

Konfiguracja Trimble Access Sync

DOKUMENTACJA IMPLEMENTACJI MECHANIZMÓW OBSŁUGI AHMES SMS (soap)

Instrukcja Integracja z istore. Wersja z 07/02/2015. Copyright Zakupteraz.pl

Dostęp do rachunków płatniczych klientów Blue Media

1. Wstęp 2. Adres usługi 3. Konfiguracja 4. Metody 5. Typy danych 6. Przykład wywołania metody przy użyciu php i biblioteki nusoap 7.

Przewodnik dla użytkownika. Instrukcja korzystania z aplikacji mobilnej mtoken Asseco MAA

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Internetowy System Składania Wniosków PISF wersja 2.2. Instrukcja dla Wnioskodawców

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

System zamówień aktywnych Active Orders Szkolenie dla Dostawców BWI Rozpoczęcie Pracy z Systemem. Grudzień 2010

Moduł integracji SOTE z DHL - wersja podstawowa

Cisco SPA1xx (SPA112, SPA122)

Wersja dokumentu: Data: 17 listopada 2016 r.

Gatesms.eu Mobilne Rozwiązania dla biznesu

SSL Reseller. Dokumentacja techniczna v.1.0 z dnia

Dokumentacja API serwisu KurierSerwis.com

Spis treści 1. Założenia ogólne 2. Wymagania 3. Typy SMSów 4. Statusy SMSów 5. Wysyłanie SMSów - Web API 6. Wysyłanie SMSów - 7.

E-PODPIS INSTRUKCJA AKTYWACJI PODPISU ELEKTRONICZNEGO W SYSTEMIE MILLENET DLA PRZEDSIĘBIORSTW

Aktualizacja SMSFall v Data publikacji:

Instrukcja obsługi programu Klient SMS v.1.0

Instrukcja użytkownika NAUCZYCIELA AKADEMICKIEGO SYSTEMU ARCHIWIZACJI PRAC

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Instrukcja Użytkownika (Nauczyciel Akademicki) Akademickiego Systemu Archiwizacji Prac

KATALOG INICJATYW OBYWATELSKICH (KATALOG IO)

B2B Obsługa portalu zgłoszeniowego

Zakładanie konta w JSA przez administratora JSA. Rozpocznij

Instrukcja Integracja z Shoper. Wersja z 18/01/2015. Copyright Zakupteraz.pl

Dokumentacja API serwisu epaka.pl

Dodawanie nowego abonenta VOIP na serwerze Platan Libra

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Serwery aplikacji. dr Radosław Matusik. radmat

Instrukcja korzystania z aplikacji mobilnej mtoken Asseco MAA klient korporacyjny

1.1 Podłączenie Montaż Biurko Montaż naścienny... 4

Dokumentacja interfejsu API

Pomoc dla r.

System zamówień aktywnych Active Orders

Najważniejsze informacje dla klienta na temat Portalu Serwisowego D-Link Spis treści

Migracja z programu Symfonia Kadry i Płace wer 3.x do Kadr i Płac Forte

Centrum Informatyki "ZETO" S.A. w Białymstoku. Wysyłanie danych o licencjach i zezwoleniach do CEIDG w systemie ProcEnt Licencje

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Dokumentacja interfejsu MySQL. Platforma BSMS.PL Instrukcja podłączenia po przez mysql

Przewodnik użytkownika systemu e-faktur

SZCZEGÓŁOWY OPIS SPOSOBU DOSTĘPU DO INFORMACJI I DANYCH ZAWARTYCH W RAPORTACH SKŁADANYCH DO KRAJOWEJ BAZY DLA GIOŚ I WIOŚ

Katalog książek cz. 2

Instrukcja obsługi Generatora

Instrukcja użytkownika

Zaawansowane aplikacje WWW - laboratorium

NetDrive czyli jak w prosty sposób zarządzać zawartością FTP

A. Schematy funkcjonowania dla CBP... 2

Instrukcja Integracja z RedCart. Wersja z Copyright Zakupteraz.pl

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Moduł erejestracja. Wersja

1.2 Prawa dostępu - Role

Instrukcja obsługi modułu Clickshop w Systemie FLASHCOM FIS.

Jak zalogować się po raz pierwszy w serwisie Ford Leasing?

Aktywacja konta. Weryfikacja konta. Konfiguracja dostępu

Instrukcja korzystania z platformy B2B Black Point S.A.

Instrukcja Użytkownika Nauczyciel Akademicki Akademickiego Systemu Archiwizacji Prac w Uniwersytecie Papieskim Jana Pawła II w Krakowie

Wynika on z art. 76 ust. 4 ustawy Prawo o szkolnictwie wyższym i nauce z dnia 20 lipca 2018 r. (tzw. Ustawa 2.0).

APACZKA. (Moduł Magento) v Strona 1 z 11

REZERWACJA OBOZU PRZEZ PANEL ON-LINE

Skrócona instrukcja podstawowych zadań na portalu polska-szkola.pl

Dokumentacja Techniczna SMS MO

Spis treści. Rejestracja/logowanie. Zmiana numeru konta klienta. Tworzenie nowej przesyłki. Zamawianie kuriera

Zakładanie konta na portalu OX.PL Uruchamianie linku aktywacyjnego Co zrobić w przypadku kiedy link nie dotarł na skrzynkę mailową Dodawanie ogłoszeń

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Warszawa Specyfikacja techniczna. mprofi Interfejs API wersja 1.0.7

Instrukcja uruchomienia i korzystania z mtoken Asseco MAA na urządzeniach mobilnych oraz powiązania z Asseco CBP

Kalipso wywiady środowiskowe

Dokumentacja Użytkownika Systemu. Integracja z Okazje.info, Skąpiec, Sklepy24

INSTRUKCJA AKTYWACJI I OBSŁUGI BRAMKI SMS DLA FIRM. (Bramka SMS dla małych Firm, Bramka SMS Pro)

Instalacja przeglądarki FIREFOX OnLine FRSE KROK PO KROKU

Aplikacja kliencka na Tablety z systemem Android. Instrukcja instalacji

Instrukcja korzystania z aplikacji mobilnej mtoken Asseco MAA

Zaawansowane aplikacje internetowe laboratorium

Komunikator podręcznik użytkownika podręcznik użytkownika

WYGENEROWANIE NOWEGO HASŁA DO SYSTEMU NA ADRES skrócona instrukcja

System Doładowania e-karty przez Internet (SDK) Podręcznik użytkownika

Instrukcja uzyskiwania licencji

INSTRUKCJA POWIĄZANIA BANKOWOŚCI INTERNETOWEJ Z APLIKACJĄ MOBILNĄ mtoken ASSECO MAA KLIENCI KORPORACYJNI

Spis treści REJESTRACJA NOWEGO KONTA UŻYTKOWNIKA PANEL ZMIANY HASŁA PANEL EDYCJI DANYCH UŻYTKOWNIKA EXTRANET.NET...

Transkrypt:

Dokumentacja API sender sms Wersja Autor Zakres zmian Data utworzenia 1.0 Michał Klimek Wersja bazowa 21.10.2016 Strona 1 z 15

Spis treści Wstęp... 3 Autoryzacja... 4 Informacje ogólne... 4 Co jest potrzebne... 4 Parametry dla serwera testowego... 5 Przykład podłączenia API w technologii JAVA Spring... 6 Wysyłki i wiadomości... 9 Definicje... 9 Statusy wysyłek... 10 Statusy wiadomości... 11 API... 12 Dokumentacja i testowe wywołania... 12 Metody... 13 Webhook... 14 Kontakt techniczny... 15 Strona 2 z 15

Wstęp Niniejsza dokumentacja prezentuje sposób wykorzystania API usługi sender sms. Poniżej zaprezentowano sposoby autoryzacji, przykłady podłączenia API, sposób dostępu do dokumentacji oraz statusy wysyłek i wiadomości SMS. Strona 3 z 15

Autoryzacja Informacje ogólne Mechanizm autoryzacji API usługi sender sms został oparty o standard OAuth2 dla Grant Type = password Schemat koncepcji autoryzacji OAuth2 oraz wywoływania metod API: 1 Zapisuje swój login i hasło do API w trakcie rejestracji Użytkownik API 2 Login, hasło, clientid, clientsecret, granttype= password, scope 3 Access Token 4 Korzystając z Access Token wykonuje metody API Co jest potrzebne Aby połączyć się do API, powinny być spełnione następujące warunki: 1. użytkownik ma założone konto w systemie sender sms 2. użytkownik ma nadane uprawnienie zezwalające na dostęp do panelu administracyjnego i do API Strona 4 z 15

3. użytkownik zna dane logowania (login, hasło) do panelu oraz API 4. użytkownik zna wartości parametrów clientid, clientsecret wykorzystywanych przez usługę sender sms Jak spełnić w/w warunki? To proste: 1. Założ konto w usłudze sender sms wchodząc na stronę http://sendersms.pl (wersja testowa: http://31.179.136.246:8080/), wybierając link Rejestracja i podążając za instrukcjami zakładania konta 2. Uprawnienie zezwalające na dostęp do panelu administracyjnego jest nadawane automatycznie po pomyślnym zakończeniu procesu rejestracji (pkt. 1). Aby otrzymać uprawnienie umożliwiające dostęp do API należy wystąpić o stosowne uprawnienia do administratora systemu. 3. Dane logowania do panelu administracyjnego (tworzone przez użytkownika w trakcie rejestracji) oraz do API są identyczne 4. Na potrzeby wykorzystania mechanizmu autoryzacji OAuth2 ustala się testowe wartości parametrów: clientid: sender_apiapp clientsecret: sender_secret Wartości w/w parametrów dla systemu produkcyjnego zostaną przekazane użytkownikowi wraz z nadaniem roli dostępu do API przez administratora systemu. Parametry dla serwera testowego AccessTokenUri = http://31.179.136.246:8082/oauth/token clientid: sender_apiapp clientsecret: sender_secret Strona 5 z 15

Przykład podłączenia API w technologii JAVA Spring Konfiguracja: package pl.sender.portal.config; import org.springframework.beans.factory.annotation.value; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; import org.springframework.http.converter.httpmessageconverter; import org.springframework.http.converter.json.mappingjackson2httpmessageconverter; import org.springframework.security.oauth2.client.defaultoauth2clientcontext; import org.springframework.security.oauth2.client.oauth2resttemplate; import org.springframework.security.oauth2.client.token.grant.password.resource OwnerPasswordResourceDetails; import java.util.arraylist; import java.util.linkedlist; import java.util.list; /** * @author sender sms */ @Configuration public class SmsSenderApiConfiguration { @Value("http://${sender.senderapi.host:${sender.senderapi.port") private String address; @Value("${sender.senderapi.user") private String user; @Value("${sender.senderapi.password") private String password; @Value("${sender.senderapi.clientId") private String clientid; @Value("${sender.senderapi.clientSecret") private String clientsecret; @Bean ResourceOwnerPasswordResourceDetails resourceownerpasswordresourcedetails(){ ResourceOwnerPasswordResourceDetails resourcedetails = new ResourceOwnerPasswordResourceDetails(); List<String> scope = new ArrayList<>(2); scope.add("read"); scope.add("write"); resourcedetails.setusername(user); resourcedetails.setpassword(password); resourcedetails.setaccesstokenuri(address + "/oauth/token"); resourcedetails.setclientid(clientid); resourcedetails.setclientsecret(clientsecret); resourcedetails.setgranttype("password"); resourcedetails.setscope(scope); return resourcedetails; @Bean DefaultOAuth2ClientContext defaultoauth2clientcontext(){ return new DefaultOAuth2ClientContext(); @Bean OAuth2RestTemplate smssenderapiresttemplate() { OAuth2RestTemplate resttemplate = new Strona 6 z 15

OAuth2RestTemplate(resourceOwnerPasswordResourceDetails(), defaultoauth2clientcontext()); List<HttpMessageConverter<?>> messageconverters = new LinkedList<HttpMessageConverter<?>>(); messageconverters.add(new MappingJackson2HttpMessageConverter()); resttemplate.setmessageconverters(messageconverters); return resttemplate; Prosta klasa wiadomości SMS: package pl.sender.portal.service.sms; /** * @author sender sms */ public class SimpleSmsRequest { private String recipientnumber; private String messagetext; public String getrecipientnumber() { return recipientnumber; public void setrecipientnumber(string recipientnumber) { this.recipientnumber = recipientnumber; public String getmessagetext() { return messagetext; public void setmessagetext(string messagetext) { this.messagetext = messagetext; public SimpleSmsRequest(String recipientnumber, String messagetext) { this.recipientnumber = recipientnumber; this.messagetext = messagetext; Użycie: package pl.sender.portal.service; import org.slf4j.logger; import org.slf4j.loggerfactory; import org.springframework.beans.factory.annotation.value; import org.springframework.http.httpstatus; import org.springframework.http.mediatype; import org.springframework.http.requestentity; import org.springframework.http.responseentity; import org.springframework.security.core.context.securitycontext; import org.springframework.security.core.context.securitycontextholder; import org.springframework.security.core.context.securitycontextimpl; import org.springframework.security.oauth2.client.oauth2resttemplate; import org.springframework.stereotype.service; import pl.sender.portal.domain.senderuser; import pl.sender.portal.dto.smscenterdeliveryreceiptdto; import pl.sender.portal.service.sms.differentsmstomany; Strona 7 z 15

import pl.sender.portal.service.sms.simplesmsrequest; import javax.inject.inject; import java.net.uri; import java.net.urisyntaxexception; import java.util.linkedlist; import java.util.list; /** * Sending sms service. * @author sender sms */ @Service public class SmsService { private final Logger log = LoggerFactory.getLogger(SmsService.class); @Value("${sender.senderapi.host:${sender.senderapi.port") private String address; @Inject OAuth2RestTemplate smssenderapiresttemplate; public void sendmysms(){ String message = "Mój sms testowy"; String number = "48999888777"; sendsms(message); public void sendsms(string number, String content){ DifferentSmsToMany smstomany = new DifferentSmsToMany(); smstomany.setescapeunicodecharacters(false); smstomany.setfast(true); List<SimpleSmsRequest> smses = new LinkedList<SimpleSmsRequest>(); smses.add(new SimpleSmsRequest(number, content)); smstomany.setsmses(smses); URI uri = null; try { uri = new URI(new StringBuilder().append("http://").append(address).append("/sender_api/sendDifferentSmsToMany").toString()); catch (URISyntaxException e) { log.error("nieprawidłowy adres serwera SenderSMS api", e); RequestEntity request = RequestEntity.post(uri).accept(MediaType.APPLICATION_JSON).body(smsToMany); SecurityContextHolder.setContext(new SecurityContextImpl()); ResponseEntity<?> response = smssenderapiresttemplate.exchange(request, Void.class); if(response.getstatuscode()!= HttpStatus.OK) throw new RuntimeException("Błąd podczas wysyłania smsa"); Strona 8 z 15

Wysyłki i wiadomości Definicje Usługa sender sms opiera się na koncepcji wysyłki i wiadomości. Wysyłka zbiór wiadomości, o wspólnych właściwościach. Dodana do systemu w ramach wykonania jednej metody API. Może składać się z jednego lub wielu SMS. Posiada własny status. Wiadomość pojedynczy SMS. Posiada własny status. Strona 9 z 15

Statusy wysyłek S_DRAFT Wersja robocza S_WAITING_FOR_ SENDING Oczekuje na wysłanie S_CANCELED Anulowana S_SENDING W trakcie wysyłania S_FINISHED Zakończona Strona 10 z 15

Statusy wiadomości S_NEW Nowy S_VALIDATED_ POSITIVE Poprawna pod względem treści S_VALIDATED_ NEGATIVE Niepoprawna pod względem treści S_SENDING W trakcie wysyłania S_SENT Wysłana S_DELIVERED Dostarczona S_REJECTED_ BY_OPERATOR Odrzucona przez operatora S_NOT_ DELIVERED_ DUE_TIMEOUT Niedostarczona - przeterminowana S_ERROR Błąd w trakcie wysyłania Strona 11 z 15

API Dokumentacja i testowe wywołania Po zalogowaniu się do panelu administracyjnego sender sms, użytkownik ma możliwość zapoznania się z metodami API i wypróbowania każdej z nich przy pomocy środowiska pomocniczego Swagger. W tym celu należy z menu wybrać pozycję API dokumentacja : po czym w celu weryfikacji uprawnień ponownie wpisać dane logowania do panelu administracyjnego. Po poprawnym zalogowaniu prezentowane są wszystkie dostępne metody API. Strona 12 z 15

Metody cancelshipment anulowanie wysyłki contactsgrouplist pobranie listy grup kontaktów (baza kontaktów) messagedetails pobranie szczegółów wiadomości SMS senddifferentsmstomany wysłanie wysyłki składającej się z różnych wiadomości dla różnych numerów sendsamesmstomany wysłanie wysyłki zawierającej wielu odbiorców wiadomości i jedną treść, która zostanie do nich wysłana sendsms wysłanie pojedynczego SMS sendsmstogroup wysłanie SMS do grupy shipmentdetails pobranie szczegółów wysyłki templatelist pobranie listy szablonów wiadomości Strona 13 z 15

Webhook Po każdej zmianie statusu wiadomości na adres podany przy tworzeniu wysyłki (parametr webhookaddress) za pomocą metody POST wysyłana jest struktura SentMessageInfo o polach: public class SentMessageInfo { private UUID id; private String recipientnumber; private String currentstatename; private UUID shipmentid; Strona 14 z 15

Kontakt techniczny W razie jakichkolwiek problemów technicznych prosimy o kontakt z: Dariusz Lipczyk d.lipczyk@mobileconvert.pl +48 694 916 123 Strona 15 z 15