Mega send one message

Исходный код

<?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