Исходный код
<?php
require_once 'CMegaApi.php';
$mega_login = 'login';
$mega_password = 'pass';
$destination = '+70000000000';
$message = 'Test message. Тестовое сообщение..';
// Пример 1: Отправка сообщения
CMegaApi::NewRequest($mega_login , $mega_password); // инициализация запроса; указывается логин, пароль
CMegaApi::SendMessage($destination, $message); // добавляем в запрос новое сообщение $message для отправки на номер $addr
$result = CMegaApi::SendRequest(); // отправляем запрос на сервис и получаем ответ код ответа CMegaApi::ERR_* (200 == Ok)
if($result == CMegaApi::ERR_HTTP_OK)
{
if($msg_info = CMegaApi::GetNewMessageInfo(0)) // получаем информацию о нашем сообщении
{
$newMessageId = $msg_info['id']; // запоминаем id нового сообщения
}
}
else {
echo "Error: " . __LINE__ . ', ' . var_dump ($result) . PHP_EOL;
die();
}
$messageId = $newMessageId;
// Пример 2: Получение текущего статуса для сообщения $messageId
// Пример заключен в цикл для наглядной демнстрации жизненного цикла сообщения
// ЧАСТЫЕ ЗАПРОС - ЭТО АГРЕССИВНОЕ ИСПОЛЬЗОВАНИЕ РЕСУРСОВ API. ПРИВЕДЕНО В ДЕМНСТРАТИВНЫХ ЦЕЛЯХ. НА ПРАКТИКЕ ПРИВЕДЕТ К БЫСТРОМУ ИСЧЕРПАНИЮ ОПЛАЧЕННЫХ РЕСУРСОВ.
$start = microtime(true);
CMegaApi::NewRequest($mega_login , $mega_password); // инициализация запроса, иначе повторно будем не только запрашивать статус, но и отправлят сообщение
for ($i=1; $i<=100; $i++) {
CMegaApi::RequestMessageStatuses($messageId); // запрашиваем информацию о сообщении
$result = CMegaApi::SendRequest(); // отправляем запрос сервису
if($result == CMegaApi::ERR_HTTP_OK)
{
$msg_info = CMegaApi::GetMessageInfo($messageId); // получаем информацию о сообщении см. {oms}
$runtime = round((microtime(true)-$start), 3);
echo $runtime . "\t" . ' Message ' . $msg_info['id'].' has status [common: '.$msg_info['st'] . ']' . '[delivery: ' . $msg_info['sd'] . ']' . PHP_EOL;
}
else {
echo "Error: " . __LINE__ . ', ' . var_dump ($result) . PHP_EOL;
die();
}
usleep (200000);
if ($msg_info['sd'] == 1070) {
echo 'Message delivered' . PHP_EOL;
break;
}
}
?>
Вывод
# php -f mega_quick_start_3_request_to_api.php
0.798 Message 26 has status [common: 1020][delivery: 1062]
1.802 Message 26 has status [common: 1030][delivery: 1062]
2.803 Message 26 has status [common: 1030][delivery: 1062]
3.799 Message 26 has status [common: 1060][delivery: 1062]
4.785 Message 26 has status [common: 1060][delivery: 1062]
5.761 Message 26 has status [common: 1060][delivery: 1062]
6.736 Message 26 has status [common: 1060][delivery: 1062]
7.704 Message 26 has status [common: 1060][delivery: 1062]
8.703 Message 26 has status [common: 1060][delivery: 1062]
9.78 Message 26 has status [common: 1060][delivery: 1062]
12.139 Message 26 has status [common: 1060][delivery: 1070]
Message delivered