Регистрация

Модуль Message

Создание, отправка, и другие функции для работы с одиночными сообщениями (не рассылками).

API methods

Получение отчета о статусе доставки SMS сообщения
https://api.mobizon.kz/service/Message/GetSMSStatus

Получение списка SMS сообщений
https://api.mobizon.kz/service/Message/List

Отправка одиночного SMS сообщения
https://api.mobizon.kz/service/Message/SendSmsMessage

Получение отчета о статусе доставки SMS сообщения

https://api.mobizon.kz/service/Message/GetSMSStatus Метод принимает как строку с одним ID сообщения, так и массив ID сообщений. Независимо от типа входного параметра возвращаемый результат всегда представлен в виде массива. Если передавать несуществующие или не принадлежащие пользователю ID сообщений, то результат не будет содержать информации об этих сообщениях.

Список возможных статусов сообщений:

СтатусОкончательныйОписание
NEWнетНовое сообщение, еще не было отправлено
ENQUEUDнетПрошло модерацию и поставлено в очередь на отправку
ACCEPTDнетОтправлено из системы и принято оператором для дальнейшей пересылки получателю
UNDELIVдаНе доставлено получателю
REJECTDдаОтклонено оператором по одной из множества причин - неверный номер получателя, запрещенный текст и т.д.
PDLIVRDнетНе все сегменты сообщения доставлены получателю, некоторые операторы возвращают отчет только о первом доставленном сегменте, поэтому такое сообщение после истечения срока жизни перейдет в статус DELIVRD
DELIVRDдаДоставлено получателю полностью
EXPIREDдаДоставка не удалась так как истек срок жизни сообщения (по умолчанию 3 суток)
DELETEDдаУдалено из-за ограничений и не доставлено до получателя

Параметры запроса

ПараметрТипОписание
idsarray | stringИдентификатор(ы) сообщения - массив или строка идентификаторов, разделенных запятыми. Максимум 100 штук.

Ответ сервера

ПолеТипОписание
idintegerID сообщения
statusstringСтатус сообщения
segCntintegerКол-во сегментов в данном сообщении
startSendTsstringВремя начала отправки сообщения
statusUpdateTsstringВремя последнего обновления статуса сообщения

Коды ошибок

КодОписание
2Eсли не указано ни одного идентификатора сообщений
12Eсли указано более 100 идентификаторов сообщений

Examples

curl -X POST \
  'https://api.mobizon.kz/service/message/getSMSStatus?output=json&api=v1&apiKey=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -d ids%5B0%5D=123&ids%5B1%5D=556&ids%5B2%5D=988
var data = "ids%5B0%5D=123&ids%5B1%5D=556&ids%5B2%5D=988";

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});

xhr.open("POST", "'https://api.mobizon.kz/service/message/getSMSStatus?output=json&api=v1&apiKey=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK");
xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("cache-control", "no-cache");

xhr.send(data);
<?php
use Mobizon\MobizonApi;

$api = new MobizonApi('KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK', 'api.mobizon.kz');

// Вызов АПИ метода
if ($api->call(
    'message',
    'getSMSStatus',
    array(
        //идентификаторы сообщений
        'ids' => array(
            '123',
            '556',
            '988'
        )
    )
)
) {
    // Получение результата выполнения метода
    $result = $api->getData();
} else {
    // Во время выполнения произошла ошибка, вывод кода ошибки и текста сообщения
    echo '[' . $api->getCode() . '] ' . $api->getMessage() . PHP_EOL;
}

Получение списка SMS сообщений

https://api.mobizon.kz/service/Message/List

Параметры запроса

ПараметрТипОписание
criteriaarrayКритерии поиска (см. таблицу Критерии поиска)
paginationarrayПараметры постраничного вывода (см. таблицу Параметры постраничного вывода)
sortarrayПараметры сортировки (см. таблицу Параметры сортировки)
withNumberInfointegerФлаг извлечения информации о номере получателя, по умолчанию - 0
Критерии поиска
ПараметрТипОписание
criteria[id]integerИдентификатор сообщения
criteria[campaignId]integerИдентификатор кампании
criteria[campaignIds]arrayПоиск по идентификаторам кампаний, параметр должнен быть передан в виде массива или строки идентификаторов, разделенных запятыми, макисмальное кол-во идентификаторов - 10, при превышениии этого лимита поиск будет происходить по первым 10 из списка (если данный параметр установлен, то принудительное ограничение по дате создания не используется и поиск происходит по всем когда-либо созданным кампаниям)
criteria[from]stringПодпись отправителя
criteria[to]stringНомер получателя
criteria[text]stringТекст сообщения
criteria[status]integerСтатус сообщения
criteria[groups]stringГруппы получателя сообщения
criteria[contentProviderId]integerИдентификатор смс центра
Параметры постраничного вывода
ПараметрТипОписание
pagination[pageSize]integerКоличество отображаемых элементов на странице
pagination[currentPage]integerТекущая страница
Параметры сортировки
ПараметрТипОписание
sort[id]integerИдентификатор сообщения
sort[campaignId]integerИдентификатор кампании
sort[from]stringПодпись отправителя
sort[to]stringНомер получателя
sort[text]stringТекст сообщения
sort[status]integerСтатус сообщения
sort[groups]stringГруппы получателя сообщения
sort[contentProviderId]integerИдентификатор смс центра

Ответ сервера

Массив данных

ПолеТипОписание
itemsarrayСписок найденных сообщений (см. таблицу Список сообщений)
totalItemCountintegerОбщее количество найденных элементов
Список сообщений

Каждое из сообщений содержит поля:

ПолеТипОписание
idintegerИдентификатор сообщения
campaignIdintegerИдентификатор кампании
segNumintegerКоличество сегментов
segUserBuyfloatСтоимость покупки сегмента для пользователя в валюте пользователя
fromstringПодпись отправителя
tostringНомер получателя
textstringТекст сообщения
statusintegerСтатус сообщения
groupsstringИдентификаторы групп получателя сообщения, в которые входил данный номер на момент создания кампании
uuidstringВнутренний идентификатор сообщения
countryA2stringКод страны получателя
operatorNamestringОператор получателя

Examples

curl -X POST \
  'https://api.mobizon.kz/service/message/list?output=json&api=v1&apiKey=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -d criteria%5Bfrom%5D=Alpha&pagination%5BcurrentPage%5D=2&pagination%5BpageSize%5D=50&sort%5BcampaignId%5D=ASC
var data = "criteria%5Bfrom%5D=Alpha&pagination%5BcurrentPage%5D=2&pagination%5BpageSize%5D=50&sort%5BcampaignId%5D=ASC";

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});

xhr.open("POST", "'https://api.mobizon.kz/service/message/list?output=json&api=v1&apiKey=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK");
xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("cache-control", "no-cache");

xhr.send(data);
<?php
use Mobizon\MobizonApi;

$api = new MobizonApi('KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK', 'api.mobizon.kz');

// Вызов АПИ метода
if ($api->call(
    'message',
    'list',
    array(
        //критерии поиска
        'criteria' => array(
            //подпись отправителя
            'from' => 'Alpha'
        ),
        //параметры постраничного вывода
        'pagination' => array(
            //текущая страница
            'currentPage' => '2',
            //количество отображаемых элементов на странице
            'pageSize' => '50'
        ),
        //параметры сортировки
        'sort' => array(
            //сортировка по идентификтору кампании
            'campaignId' => 'ASC'
        )
    )
)
) {
    // Получение результата выполнения метода
    $result = $api->getData();
} else {
    // Во время выполнения произошла ошибка, вывод кода ошибки и текста сообщения
    echo '[' . $api->getCode() . '] ' . $api->getMessage() . PHP_EOL;
}

Отправка одиночного SMS сообщения

https://api.mobizon.kz/service/Message/SendSmsMessage Данный метод позволяет отправить одиночное СМС сообщение на указанный номер мобильного телефона.

Параметры запроса

ПараметрТипОписание
recipientstringПолучатель SMS сообщения - номер в международном формате, если в номере есть + в начале, то его следует закодировать в URL сущность %2B или удалить, оставив только цифры.
textstringТекст SMS сообщения, закодированный в URL сущность. Если во время попытки отправить сообщение при помощи GET запроса система не возвращает ответ с данными сообщения, следует в первую очередь обратить внимание на наличие спецсимволов в теле запроса, такими символами являются: ? / \ & + и [пробел].
fromstringПодпись отправителя. Можно не указывать, тогда в случае, если нет ни одной валидной подписи, будет использована общая системная подпись.
Внимание: Подпись может отличаться для каждого оператора и может быть без предупреждения изменена в любое время. Если же есть заведенные подписи, то будет использована та, у которой установлен флаг "По умолчанию".
paramsarrayДополнительные параметры (см. таблицу Дополнительные параметры).

Дополнительные параметры

ПараметрТипОписание
params[name]stringНазвание кампании
params[deferredToTs]stringДата и время отправки, если необходимо отложить отправку до указанного времени. Должна быть не позднее чем через 14 дней и не ранее чем через час от текущего времени. Формат: 2013-12-31 15:34:55
params[mclass]integerСпособ обработки СМС мобильным телефоном.
0 - отображается всплывающим окном и никуда не сохраняются (flashSMS), поддерживается не всеми телефонами;
1 (по умолчанию) - сохраняется в папку Входящие СМС в телефоне получателя;
2 - сохраняется на сим карту;
3 - SIM Toolkit SMS
params[validity]integerВремя жизни сообщения в минутах от 1 мин до 3 суток (4320 мин) с момента отправки. По умолчанию: 1440 (24 часа)

Ответ сервера

ПолеТипОписание
campaignIdintegerИдентификатор sms кампании (по нему можно затем узнать различные параметры кампании, запросить список сегментов, их статусы и другую информацию модуля campaign)
messageIdintegerИдентификатор sms сообщения (по нему можно узнать статус доставки сообщения с помощью message::getsmsstatus
statusintegerСтатус отправки кампании.
1 - кампания ожидает модерации,
2 - кампания отправлена без модерации

Коды ошибок

КодОписание
1Если хотя бы один из параметров указан неверно

Examples

curl -X POST \
  'https://api.mobizon.kz/service/message/sendSmsMessage?output=json&api=v1&apiKey=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -d recipient=%7Bwidget%3Aexample-phone%7D&text=Test+sms+message&from=YourAlpha&params%5Bvalidity%5D=1440
var data = "recipient=%7Bwidget%3Aexample-phone%7D&text=Test+sms+message&from=YourAlpha&params%5Bvalidity%5D=1440";

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});

xhr.open("POST", "'https://api.mobizon.kz/service/message/sendSmsMessage?output=json&api=v1&apiKey=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK");
xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("cache-control", "no-cache");

xhr.send(data);
<?php

use 'Mobizon\MobizonApi.php';

$api = new Mobizon\MobizonApi('KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK', 'api.mobizon.kz');

// API call to send a message
if ($api->call('message',
    'sendSMSMessage',
    array(
        // Recipient international phone number
        'recipient' => '77273573423',
        // Message text
        'text' => 'Test sms message',
        // Alphaname is optional, if you don't have registered alphaname, just skip this parameter and your message will be sent with our free common alphaname, if it's available for this direction.
         'from' => 'YourAlpha,
         // Message will be expired after 1440 min (24h)
         'params[validity]' => 1440
    ))
) {
    // Get message ID assigned by our system to request it's delivery report later.
    $messageId = $api->getData('messageId');

    if (!$messageId) {
        // Message is not accepted, see error code and data for details.
    }
    // Message has been accepted by API.
} else {
    // An error occurred while sending message
    echo '[' . $api->getCode() . '] ' . $api->getMessage() . 'See details below:' . PHP_EOL . print_r($api->getData(), true) . PHP_EOL;
}
Модуль Message