PHP code example of druidvav / badapush-client

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);

$this->get('client')->cancelCallsByExternalId($externalId, 'Причина отмены');

$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); // Выполняем пока не обработаем все результаты