integration:bots:sample

СКОРО

Пример разработки бота

Мы пока тестируем ботов, но уже можем дать к ним доступ. Пишите нам, если боты вам нужны.

В этом разделе мы приводим пример разработки бота с автоответом и согласованием. Информация будет полезна разработчикам приложений.

На своем сайте создайте страницу с HTTPS-адресом, например, https://example.com/autoresponse. Эта страница-обработчик будет получать запросы от Pyrus-бота. В обработчик добавьте код по следующей схеме.

  1. Проверяем подпись. Подпись гарантирует, что вызов пришел действительно от Pyrus.
  • Вычисляем подпись тела запроса:

php: strtoupper(hash_hmac(«sha1», $response_body_as_string, $security_key))

ruby: OpenSSL::HMAC.hexdigest('sha1', security_key, response_body_as_string).upcase

Эти функции производят конвертацию запроса в виде строк в byte array с использованием utf-8 и вычисляют HMAC-дайджест с использованием алгоритма SHA1 для хеширования.

  • Сравниваем со значением заголовка X-Pyrus-Sig, чтобы удостовериться, что запрос действительно поступил от Pyrus. Если заголовки не совпадают, выполнение останавливаем.
  1. Выбираем значения Author.Id и TaskId из полученного объекта Note ( см. полное описание ):
{
      "UserId": 400,
	"TaskId": 123456,
	"CreateDate": "/Date(1447718400000)/",
      "Author": {
          "Id": 300,
          "FirstName": "John",
          "LastName": "Smith"
      },
      "ReassignedTo": {
          "Id": 400,
          "FirstName": "Auto-Response Bot",
          "LastName": ""
      },
      "DueDateChanged": "/Date(1447718400000)/",
      "ApprovalsAdded": [[{
          "Id": 300,
          "FirstName": "John",
          "LastName": "Smith"
      },
      {
          "Id": 400,
          "FirstName": "Auto-Response Bot",
          "LastName": ""
      }]]
}

В примере выше Author.Id = 300, а TaskId = 123456.

  1. Формируем тело ответа:
{
	"TaskId": 123456,
	"Text": "Approved by bot.", 
	"ApprovalChoice": "Approved", 
	"ResponsibleId" : 300  
}

В этом примере:

  • TaskId (обязательный параметр) — идентификатор задачи, которую бот изменяет;
  • Text (необязательный параметр) — текст комментария. Если пропущен, бот сделает комментарий без текста;
  • ApprovalChoice (необязательный параметр) — установка согласования бота. Если согласование не требуется, этот параметр будет проигнорирован сервером;
  • ResponsibleId (необязательный параметр) — установка нового ответственного в изменяемой задаче. Если пропущен, ответственным по задаче останется бот.
  1. Возвращаем ответ HTTP 200 ОК и тело, как указано выше.

Теперь нужно добавить нового бота на странице настройки ботов в Pyrus. В поле URL впишите адрес обработчика (в нашем примере это https://example.com/autoresponse).

Для проверки поставьте в Pyrus задачу на бота с запросом его согласования. Убедитесь, что в задаче получен ответ с текстом Approved by bot и стоит согласование бота.

Работа с ботами

Возникли вопросы? Мы всегда рядом, чтобы помочь.

СВЯЖИТЕСЬ С НАМИ

8 800 555-69-55
бесплатно по России

+7 495 980-13-11
для звонков из других стран