2017 © Pedro Peláez
 

library smsclient

PHP-класс для работы с API сервисов СМС уведомлений

image

sintsov/smsclient

PHP-класс для работы с API сервисов СМС уведомлений

  • Tuesday, December 19, 2017
  • by sintsov
  • Repository
  • 2 Watchers
  • 1 Stars
  • 3,131 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 4 Versions
  • 21 % Grown

The README.md

SMS Client

Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

PHP-класс для работы с API сервисов СМС уведомлений, (*2)

В настоящий момент поддержка DevinoTelecom http://www.devinotele.com/, (*3)

Установка зависимостей через Composer

Для работы проекта требуется подтянуть необходмые зависимости, (*4)

Для этого запустите, (*5)

php composer.phar install

Для установки в свой проект, (*6)

php composer.phar require sintsov/smsclient "dev-master"

Требования

  • PHP >= 5.4.0

Классы и методы, (*7)

Класс SmsClient\DevinoSMS\Api

Реализует основные методы Devino REST API, (*8)

### send

Описание: Отправка СМС сообщения, (*9)

Параметры

$sourceAddress: string, отправитель. До 11 латинских символов или до 15 цифровых.
$destinationAddress: string|array, адрес или массив адресов назначения. (Код страны+код сети+номер телефона, Пример: 79031234567)
$data: string, текст сообщения
$sendDate: mixed. дата отправки сообщения. Строка вида (YYYY-MM-DDTHH:MM:SS) или Timestamp (необязательный параметр)
$validity: integer, время жизни сообщения в минутах (необязательный параметр), (*10)

Возвращаемое значение

array массив ID сообщений, (*11)

Пример
$devinoSMS->send('test', '7905000000', 'Тестовое сообщение!'); // отправка SMS
$devinoSMS->send('test', '7905000000', 'Тестовое сообщение!', '2015-07-09T11:55:00'); // отправка SMS в указанное время
$devinoSMS->send('test', '7905000000', 'Тестовое сообщение!', '2015-07-09T11:55:00', '10'); // отправка SMS в указанное время и указанием времени жизни сообщения (10 минут)

### sendByTimeZone

Описание: Отправка СМС сообщения с учетом часового пояса получателя, (*12)

Параметры

$sourceAddress: string, отправитель. До 11 латинских символов или до 15 цифровых.
$destinationAddress: string, адрес назначения. (Код страны+код сети+номер телефона, Пример: 79031234567
$data: string, текст сообщения
$sendDate: mixed. дата отправки сообщения. Строка вида (YYYY-MM-DDTHH:MM:SS) или Timestamp
$validity: integer, время жизни сообщения в минутах (необязательный параметр), (*13)

Возвращаемое значение

array массив ID сообщений, (*14)

Пример
$devinoSMS->sendByTimeZone('test', '7905000000', 'Тестовое сообщение!', '1436608063'); // отправка SMS в указанное время с учетом часового пояса получателя указанного в виде timestamp
$devinoSMS->sendByTimeZone('test', '7905000000', 'Тестовое сообщение!', '2015-07-09T11:55:00'); // отправка SMS в указанное время с учетом часового пояса получателя
$devinoSMS->sendByTimeZone('test', '7905000000', 'Тестовое сообщение!', '2015-07-09T11:55:00', '10'); // отправка SMS в указанное время с учетом часового пояса получателя и указанием времени жизни сообщения (10 минут)

### getSMSStatus

Описание: Запрос статуса SMS-сообщения, (*15)

Параметры

$messageID: string, ID сообщения (который возвращает методы send и sendByTimeZone), (*16)

Возвращаемое значение

object объект, вида: * State: статус сообщения * TimeStampUtc: дата и время получения ответа * StateDescription: описание статуса * CreationDateUtc: дата создания * SubmittedDateUtc: дата отправки * ReportedDateUtc: дата доставки * Price: цена за сообщение, (*17)

Пример
$devinoSMS->getSMSStatus($id); // Запрос статуса SMS-сообщения

### getInbox

Описание: Запрос входящих SMS-сообщений за указанный период, (*18)

Параметры

$minDateUTC: mixed, начало периода выборки. Строка вида (YYYY-MM-DDTHH:MM:SS) или Timestamp
$maxDateUTC: mixed, конец периода выборки. Строка вида (YYYY-MM-DDTHH:MM:SS) или Timestamp, (*19)

Возвращаемое значение

array массив объектов с полями: * Data: текст сообщения * SourceAddress: адрес отправителя * DestinationAddress: адрес приема входящих сообщений * ID: идентификатор сообщения, (*20)

Пример
$devinoSMS->getInbox('2015-07-09T09:00:00', '2015-07-09T19:00:00'); // Запрос входящих SMS-сообщений за указанный период
$devinoSMS->getInbox('1436608063', '1436861906'); // Запрос входящих SMS-сообщений за указанный период используя timestamp

### getStatistics

Описание: Запрос статистики по SMS-рассылкам за указанный период, (*21)

Параметры

$startDate: mixed, начало периода выборки. Строка вида (YYYY-MM-DDTHH:MM:SS) или Timestamp
$endDate: mixed, конец периода выборки. Строка вида (YYYY-MM-DDTHH:MM:SS) или Timestamp, (*22)

Возвращаемое значение

array массив с информацией по статистике, (*23)

Пример
$devinoSMS->getStatistics('2015-07-09T09:00:00', '2015-07-09T19:00:00'); //  Запрос статистики по SMS-рассылкам за указанный период
$devinoSMS->getStatistics('1436608063', '1436861906'); //  Запрос статистики по SMS-рассылкам за указанный период используя timestamp

### getSessionID

Описание: Получить ID сессии (в рамках API метод вызывается в конструкторе) и отдельно вызывать его не требуется, (*24)

Возвращаемое значение

string ID сессии, (*25)

Пример
$devinoSMS->getSessionID(); // получить ID сесси

### getBalance

Описание: Запроса баланса, (*26)

Возвращаемое значение

double Баланс, (*27)

Пример
$devinoSMS->getBalance(); // получить баланс

### getClient

Описание: Получить клиента, (*28)

Возвращаемое значение

object SmsClient\Client\ClientInterface, (*29)

Пример
$client = $devinoSMS->getClient(); // получить клиента
$client->setTimeout(2); // установить таймаут соединения

Пример использования API

DevinoTelecom

require_once 'vendor/autoload.php';

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(-1);

use SmsClient\DevinoSMS\Api;

$devinoSMS = new Api('login', 'password');
// пример установки таймаута в секундах, по дефолту используется 1 секунда
$devinoSMS->getClinet()->setTimeout(2);

try {
    $sessionID = $devinoSMS->getSessionID();
    echo "

SessionID: {$sessionID}


"; echo "

Balance: {$devinoSMS->getBalance()} руб

"; $list = $devinoSMS->send('test', '7905000000', 'Тестовое сообщение!'); $id = reset($list); echo "<h2>Send SMS: {$id}</h2>"; $list = $devinoSMS->sendByTimeZone('test', '7905000000', 'Тестовое сообщение с учетом часового пояса!', '2015-07-09T11:55:00'); $id = reset($list); echo "<h2>Send SMS By Time Zone: {$id}</h2>"; $list = $devinoSMS->send('test', array('7905000000', '7905000001'), 'Массовое тестовое сообщение!'); $mes = print_r($list, true); echo "<h2>Send SMS Bulk: {$mes}</h2>"; $result = $devinoSMS->getSMSStatus($id); $mes = print_r($result, true); echo "<h2>SMS Status: {$mes}</h2>"; $result = $devinoSMS->getStatistics('2015-07-09T09:00:00', '2015-07-09T19:00:00'); $mes = print_r($result, true); echo "<h2>Get Message statistics: {$mes}</h2>"; $result = $devinoSMS->getInbox('2015-07-09T09:00:00', '2015-07-09T19:00:00'); $mes = print_r($result, true); echo "<h2>Get Message Inbox: {$mes}</h2>"; } catch (\SmsClient\DevinoSMS\Exception $e) { echo $e->getMessage(); }

TODO

  • [ ] реализовать DI и нормальный интерфейс
  • [ ] вынести настройки в конфиги
  • [ ] написать тесты

The Versions

19/12 2017

dev-master

9999999-dev https://github.com/sintsov/smsClient

PHP-класс для работы с API сервисов СМС уведомлений

  Sources   Download

MIT

The Requires

 

by Sintsov Roman

api sms devinotelecom devino devinosms

19/12 2017

1.1

1.1.0.0 https://github.com/sintsov/smsClient

PHP-класс для работы с API сервисов СМС уведомлений

  Sources   Download

MIT

The Requires

 

by Sintsov Roman

api sms devinotelecom devino devinosms

14/07 2015

v1.0.1

1.0.1.0 https://github.com/sintsov/smsClient

PHP-класс для работы с API сервисов СМС уведомлений

  Sources   Download

MIT

The Requires

 

by Sintsov Roman

api sms devinotelecom devino devinosms

09/07 2015

v1.0

1.0.0.0 https://github.com/sintsov/smsClient

PHP-класс для работы с API сервисов СМС уведомлений

  Sources   Download

MIT

The Requires

 

by Sintsov Roman

api sms devinotelecom devino devinosms