---
id: Viber
---

<img src={require('../../static/img/APIs/Viber.png').default} width='64px' />

# Viber

Этот раздел посвящен библиотеке для работы с Viber API. На данной странице описаны все действия, необходимые для полноценного начала работы

## Начало работы

:::note

Особенности работы с Viber API 

1. Нельзя использовать бота и управлять каналом через API, если не установлен Webhook

   В отличии от Telegram, которые позволяют самому забирать обновления с серверов, а писать и вовсе независимо от этого, Viber требует обязательного использования Webhook, т.е у вас должен быть сервер с внешним IP и действительный SSL сертификат. Если верить документации, Viber периодически будет стучать по адресу, указанному как WH и если он не получит ответ 200, то все перестанет работать(**UPD:** Уже месяц нет http-сервиса, но ничего не поломалось). Запросы от Viber могут обрабатываться http-сервисом или любым другим обработчиком для запросов типа POST, при условии наличия SSL и доступности адреса извне. Если у вас есть такой адрес, то установить Webhook можно при помощий функции *УстановитьWebhook()* данной библиотеки (см. далее). После установки, у чат бота в приложении Viber появится кнопка "Сообщение" для начала диалога, а в канал станет можно отправлять сообщения через REST Api.

2. У Viber отсутствуют механизмы загрузки внешних файлов на их сервера

   Картинки, файлы и документы могут отправляться в Viber только в виде URL. Т.е. для этого тоже нужен сервер или, как минимум, сторонний сервис для публикации файлов. Но так как сервер уже в любом случае необходим для Webhook, отправляемые файлы можно временно сохранять в папку веб-сервера. У IIS это папка wwwroot
   
:::
   
У Viber есть два REST API: один для работы с каналами, а второй - для чат-ботов. В обоих случаях основными параметрами служат **Токен** и **IDПользователя**

- Если вам необходимо управлять каналом:
	1. Зайдите в приложение Viber и создайте новый канал
	
	![BF](../../static/img/Docs/Viber/1.png)
	
	2. После создания, перейдите в настройки канала -> "Для разработчиков", и скопируйте **Токен**
	
	![BF](../../static/img/Docs/Viber/2.png)
	
	3. Установите Webhook. См. Установить Webhook
	4. **IDПользователя** - ваш ID (администратора канала). См. Получить информацию о канале
	
 <br/>

- Если вам необходим чат-бот:
	1. Перейдите по ссылке [https://partners.viber.com/account/create-bot-account](https://partners.viber.com/account/create-bot-account) и авторизуйтесь с вашим номером телефона, который привязан к Viber
	
	![BF](../../static/img/Docs/Viber/3.png)
	
	2. Выберите пункт создания нового бота
	
	![BF](../../static/img/Docs/Viber/4.png)
	
	3. В меню создания бота заполните все необходимые поля
	
	![BF](../../static/img/Docs/Viber/5.png)
	
	4. Скопируйте **Токен**
	
	![BF](../../static/img/Docs/Viber/6.png)
	
	4. Найти своего нового бота вы можете отсканировав QR на странице создания или в настройках (пункт чат-боты) в приложении Viber. 
	
	![BF](../../static/img/Docs/Viber/7.png)
	
	5. Сейчас вы не можете начать диалог с ботом, сначала необходимо установить Webhook. См. Установить Webhook
	6. После запуска **IDПользователя** будет ID конкретного человека, ведущего диалог с ботом. Получить можно из обработыки входящих сообщения по Webhook


	**Важно:** ID одного и того же пользователя у чата и канала - это разные значения. Нельзя использовать ID, полученный из сообщения боту для вызова методов управления каналом и наоборот.