Prosta implementacja biblioteki PHP dla mprofi API.
Skopiować plik connector.php do katalogu z projektem. Do poprawnego działania wymagany jest pakiet php-curl oraz PHP w wersji >=8.1.
<?phprequire_once('connector.php');
$token = "34b039c7017e4ae886c350eb32XXXXXX";
$client = newMprofiAPIConnector($token);
# zwykła wiadomość$client->add_message("48500XXXXXX", "Test");
# wiadomość zawiarająca polskie znaki diakrytyczne$options = array("encoding" => "utf-8");
$client->add_message("48500XXXXXX", "Wiadomość testowa", $options);
# możemy ustawić powiązać z wiadomością własne ID i ustawieniem planowanej daty wysyłki$options = array("reference" => "my-msg-id-1", "date" => '2024-01-02 14:00:00');
$client->add_message("48500XXXXXX", "Test sms z id klienta", $options);
# metoda send zwraca tablicę identyfikatorów wiadomości$messageIds = $client->send();
foreach ($messageIdsas$msgId) {
echo"msgId: " . $msgId . "\n";
}
?><?php# UWAGA!# W kodzie produkcyjnym nie jest zalecane aby sprawdzać status wiadomości zaraz po wysłaniu.# Sprawdzenie nie powiedzie się jeśli zrobimy to zbyt szybko po wysłaniu (mprofi nie zdąży przetworzyć# i wysłać wiadomości) albo dostaniemy informację, że wiadomość jest wysłana bo nie ma jeszcze informacji# od operatora co się stało z wiadomoscią. Taka informacja może wrócić nawet 72h po wysłaniu.# Pierwsze odpytanie zalecamy po kilku lub kilkunastu minutach. Jeśli nie uzyskamy finalnego statusu,# powtarzamy wydłużając czas między kolejnymi sprawdzeniami. Jeśli po upływie 72h nadal brak statusu# finalnego, można odczekać 2h, dalsze odpytyanie nie ma sensu.#require_once('connector.php');
$token = "34b039c7017e4ae886c350eb32XXXXXX";
$client = newMprofiAPIConnector($token);
$messageId = 1234;
$status = $client->get_status($messageId);
/* zwraca tablicę w postaci: array( "id" => 1234, "status" => "delivered", "reference" => "2015-01-01", "ts": "2015-01-01T09:51:32.431000+01:00" );*/?><?phprequire_once('connector.php');
# UWAGA!# W mprofi API Key stworzony do wysyłania wiadomości SMS nie może być użyty do odbierania wiadomości przychodzących.# Do tego celu trzeba stworzyć osobny API Key oraz osobną instancję klasy MprofiAPIConnector$token_to_receive_sms = "77b039c7017e4ae886c350eb32XXXXXX";
$client = newMprofiAPIConnector($token_to_receive_sms);
$from_date = "2023-02-01 0:00:00";
$to_date = "2023-12-31 23:59:59";
$incoming_messages = $client->get_incoming($from_date, $to_date);
/* zwraca tablicę w postaci: array( 0 => array( "message" => "treść wiadomości", "sender" => "48123456789", "recipient" => "664400100", "ts" => "2015-02-16 10:24:40" ), );*/foreach ($incoming_messagesas$message) {
echo"Id: " . $message['id'] . ", czas: " . $message['ts'] . ", od: " . $message['sender'] . ", do: " . $message['recipient'] . ", treść: " . $message['message'] . "\n";
}
?>Próba utworzenia obiektu klasy MprofiAPIConnector rzuci wyjątek klasy Exception. Medoty send, get_status i get_incoming zwrócić wyjątek klasy Exception w przypadku błędu autoryzacji oraz innych problemem w komunikacji z API. Metody add_message i get_incoming mogą rzucić wyjątek klasy InvalidArgumentException.