1. Go to this page and download the library: Download druidvav/badapush-client library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
druidvav / badapush-client example snippets
$queueClient = new Druidvav\BadapushClient\BadapushQueueClient("API_KEY");
$client = new Druidvav\BadapushClient\BadapushClient("API_KEY");
use Druidvav\BadapushClient\Payload\Payload;
// Symfony
$this->get('queue_client')->sendPayload(Payload::create($phoneNumber, $message));
// PHP
$queueClient->sendPayload(Payload::create($phoneNumber, $message));
$payload = new Payload($identifier); // Идентификатор устройства
$payload->setIsDevelopment($bool); // Только для APNS, true или false, можно не использовать вообще
$payload->setPayload([ 'key' => 'value', 'key' => 'value' ]); // Информация которая будет передана в приложение
$payload->setPayloadAps([
'message' => 'asd123',
'sound' => 'default',
'content-available' => 1,
'priority' => 5,
'badge' => 3,
]); // Только для APNS, информация из объекта aps.
$this->get('queue_client')->sendPayload($payload);
$fromId = 0;
do {
$list = $this->get('queue_client')->retrieveMessages($fromId);
foreach ($list as $row) {
$fromId = $row->getId();
if ($row->isInvalidId()) {
// Обрабатываем ошибку идентификатора устройства.
// Сам идентификатор можно получить так:
// $row->getDeviceId()
}
}
} while (sizeof($list) > 0);
use Druidvav\BadapushClient\Payload\CallerPayload;
$payload = CallerPayload::create($phoneNumber); // Указываем номер телефона, по которому звонить
$payload->setExternalId($externalId); // ID в вашей системе, чтобы вы могли опознать результат обзвона. Например, номер посылки.
$payload->setTimezone($timezone); // Необязательно, часовой пояс клиента в том виде, в каком его отдает dadata.
$payload->setGroup($groupName); // Строка с названием очереди обзвона для разбиения задач на группы. Если разбивка не нужна — укажите одну строку для всех задач.
$payload->setResultOptions([
'ok' => 'Готово',
'received' => 'Уже забрал посылку'
]); // Не обязательно, варианты ответа доступные для выбора обзвонщику. Если не указать — будет только ok. Нужно указывать только если вы потом будете обрабатывать результаты обзвона.
$payload->setDataFields([
'key' => $value,
'key' => $value
]); // Не обязательно, значения дополнительных полей передаваемых задаче обзвона, подробнее смотри в разделе "Настройка сервисов". Если не указывать доступно только решение "ok" => "Готово!"
$this->get('client')->sendPayload($payload);
$fromId = 0;
do {
$results = $this->get('client')->retrieveMessages($fromId); // Получаем пачку сообщений для обработки. $maxId, если не равен нулю помечает все сообщения с id до fromId включительно как прочитанные и больше не возвращает их в следующих запросах. По аналогии с API Telegram.
foreach ($results as $result) {
$fromId = $result->getId();
if (!$result->getExternalId()) { // Если мы забыли передать externalId, то обработать не сможем :)
continue;
}
$response = $result->getResponse();
switch ($response['result']) {
case 'invalid_job':
// Обзвонщик нажал кнопку, что задачу невозможно выполнить
break;
case 'invalid_device_id':
// Обзвонщик нажал кнопку, что мобильный телефон неправильный
break;
case 'cancel':
// Задача была отменена по API
break;
case 'delay':
// Звонок отложен обзвонщиком (недозвон, либо просьба перезвонить)
break;
case 'ok':
case 'received': // Или любой из вариантов переданных в setDataFields
// Обзвонщик выполнил задачу, выбрав один из вариантов
break;
default: throw new Exception('Unknown code: ' . $response['result']);
}
}
} while (sizeof($results) > 0); // Выполняем пока не обработаем все результаты
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.