Сообщение в viber php

Обновлено: 30.06.2024


Чат Bot очень популярен в наши дни. С Chat Bot вы можете подключаться к своим клиентам с помощью Deeper Interactions и развивать свой бизнес.

В этой статье я расскажу, как разработать Viber Chat Bot за 6 простых шагов с использованием PHP.

1. Создать публичный аккаунт в Viber

2. Получить токен аутентификации

Пример токена : 455a0f2c05b4fe54-cb4e33d3200fbbae-95f29ebc06af09a8

Viber изменить данные аккаунта

Пример страницы детализации аккаунта для редактирования Viber

3. Настройте webhook

Настройка webhook будет выполнена путем вызова API set_webhook с действительным и сертифицированным URL.

После отправки запроса set_webhook Viber отправит обратный вызов в webhook, чтобы проверить его доступность и вернет ответ пользователю.

Примечание . Перед отправкой запроса в API set_webhook нам необходимо иметь код для обработки обратного вызова из Viber по нашему URL-адресу webhook. Пример кода PHP приведен в этой статье.

Чтобы сделать запрос POST к API set_webhook , мы можем использовать cURL или такие инструменты, как POSTMAN. Вот пример кода PHP:

Теперь нам нужно дать ответ как

status = результат действия (0 для успеха, номер ошибки для ошибок)
status_message = Ok или причина
ошибки event_types = доставлено или замечено (еще не реализовано)

Это установит URL-адрес webhook . Теперь, когда происходит событие, связанное с публичной учетной записью, обратный вызов отправляется на URL-адрес webhook, и нам нужно обрабатывать события в URL-адресе webhook, которые обсуждаются ниже.

Код для URL веб-крючка:

Изображение для клавиатуры может быть:

Изображение для клавиатуры (меню)

Пример меню чата Viber

Текст кнопки может поддерживать некоторые теги HTML:

где auth_token – строка токена, предоставленная Viber при создании публичной учетной записи.

Build Status

'; // reply name $botSender = new Sender([ 'name' => 'Whois bot', 'avatar' => 'https://developers.viber.com/img/favicon.ico', ]); try < $bot = new Bot(['token' =>$apiKey]); $bot ->onConversation(function ($event) use ($bot, $botSender) < // this event fires if user open chat, you can return "welcome message" // to user, but you can't send more messages! return (new \Viber\Api\Message\Text()) ->setSender($botSender) ->setText("Can i help you?"); >) ->onText('|whois .*|si', function ($event) use ($bot, $botSender) < // match by template, for example "whois Bogdaan" $bot->getClient()->sendMessage( (new \Viber\Api\Message\Text()) ->setSender($botSender) ->setReceiver($event->getSender()->getId()) ->setText("I do not know )") ); >) ->run(); > catch (Exception $e) < // todo - log exceptions >">

See more in examples directory.

  • all api entities
  • validate request and response signs
  • provide webhook interface
  • provide event interface
  • wrap all api response to entities
  • validate api entities before submit?
  • implement log levels with monolog?
  • post on public page

Pull requests are welcome.

viber-bot-php's People

Contributors

Stargazers

Watchers

Forkers

viber-bot-php's Issues

Closing internal browser for Viber

Hi! Is there a way to close a Viber internal browser programmatically?

Fail on get_account_info request

Remote error: Invalid JSON or missing necessary fields. Error: could not parse json [""

Keyboard

Is it possible to repeat a keyboard without writing whole setKeyboard in each.

$menu = new Keyboard

and repeat by calling setKeyboard($menu)

Не приходит message от пользователя

unset_webhook()

Не отправляются контактные данные

При запросе контактных данных, и нажатии на кнопку, не отправляются контактные данные пользователя.

Как могу с вами связаться?

Связался, вопрос снят

onText ввод русскоязычного текста

Добрый день! Функция onText обрабатывает только англоязычный ввод текста. А как вводить произвольный текст на русском? как вообще извлечь пользовательский ввод произвольного текста, для дальнейшей обработки, например записи в БД?

Портировать билиотеку в botman.io

Как эту бибилотеку использовать вместе с botman.io как драйвкер для viber?

Save param event.message.text to value

Save param event.message.text to value:

text, picture, video, contact, URL and location

В SDK есть методы бота

on, onText, onSubscribe, onConversation

Каким образом можно словить, например, изображение?
Спасибо!

How to call from text file?

Is there a way to call from text from a txt file.

My plan is to add many words to a text file and when a user type anyword from that txt file, a message to send. Like filtering bad words from a file.

Its difficult to add all words in the bot.php file.

I believe it is possible to explode text and check for preg match

Contact message type

Приветствую.
При получении телефона от пользователя имеем event:

т.е. в phone_number вложен в contact и не попадёт в свойства объекта

without "composer require bogdaan/viber-bot-php"

How to use the library without "composer require bogdaan/viber-bot-php"?

Apply for a Public Account

Apply for a Public Account - не там такого

Не отправляется номер телефона через share-phone с десктопной версии viber

Button -> Silent

Попробовал дописать в Button.php соответствующее поле с сеттером и геттером.
Ошибок не возникло, но и Silent не заработал.

Exception on Sticker type of message

When income message with sticker, got exception
Call to undefined method Viber\Api\Message\Sticker::getText()

->onConversation don't work

why so?

In ->onText I do smth like

The script on remote server answer after 1-4 sec
But the Bot sends curl request several times but i want have one request

Добрый день.
Пытаюсь выполнить вот такой код:

В итоге ловлю Exception

В чем может быть проблема? Сертификат валидный, пути правильные, токен рабочий ..

типо как с функцией php mail

Have you plan on create a new Carousel message type?

Выполняется только первый обработчик событий

В файле Bot.php на 227 строке break обрывает обход обработчиков. Так задумано?

Call Name

onConversation how to greet with the name.

eg: Hi, (sender_name)

How can i integrate viber-bot-php into yii2 action. Many ways, many errors

500
400
i tried _csrf off
now i hav ActiveControoler and with message 'Response content must not be an array.'

In standalone php app the work is OK.

Не могу установить веб хук

Скачал архив с Гитхаба. Пробую выполнить examples/setup.php, но получаю ошибку об отсутствии файла ../vendor/autoload.php.

Warning: require_once(../vendor/autoload.php): failed to open stream: No such file or directory in . \examples\setup.php on line 10

Его действительно нету, как и папки vendor. Я так понимаю, они появятся если загрузить проект через Композер. Но мои попытки сделать это, успехом не увенчались.

Вы бы не могли выложить архив, который получается в результате скачивания проекта Композером? Ну или что-нибудь, чтобы оно заработало :)

Broadcast message

Is there any way to send broadcast message for all subscribers?

For example i want to trigger bot.php externaly to send all subscribers some message.

Не заполняется имя контакта

При получении данных контакта, заполняется только номер телефона.

Lines 104 to 117 in 984b6bc

/**
* Set the value of Phone number of the contact from contact array.
*
* @param array contact
*
* @return self
*/
public function setConcat ( $ contact )
$ this -> phone_number = $ contact [ 'phone_number' ];
return $ this ;
>
>

How to enter a new line in a message?

I was wondering, how to enter a new line when sending a text message?

Share my location

how i can share my location with custom keyboard button ?

Не работают кнопки

viber-bot-php/examples/bot-plus.php
Keyboards почему-то вообще не приходит, все с примера брал.

Call to undefined method Viber\Api\Exception\ApiException::getError()

При попытке установить webhook получаю в ответ такую ошибку:
Call to undefined method Viber\Api\Exception\ApiException::getError()

Проект на YII2 (2.0.13.1), PHP 7.2.

Скрипт Setup запускаю как консольное приложение.

use Yii;
use yii\console;
use yii\helpers\Console;
use Viber\Client;

class ViberController extends Controller

setup 500 Internal Server Error

require_once("./vendor/autoload.php");
use Viber\Client;
$apiKey = 'myapi'; // $apiKey ]);
$result = $client->setWebhook($webhookUrl);
echo "Success!\n";
> catch (Exception $e) echo "Error: ". $e->getMessage() ."\n";
>

Как проверить, что запрос пришел от вайбера?

Собственно сабж в заголовке. Спасибо.

Координаты пользователя.

How to get user phone from this example?

setKeyboard( (new \Viber\Api\Keyboard()) ->setButtons([ (new \Viber\Api\Keyboard\Button()) ->setActionType('share-phone') ->setActionBody('reply') ->setText('Send phone number') ]) ) );">

Проблема при регистрации хука

Добрый день. При регистрации хука для бота возвращается ответ

Сертификат валидный. Можете подсказать в чем может быть проблема?

Вот массив данных которые идут на регистрацию хука:
array(2) < ["url"]=>string(35) "https://sc.mfc61.ru/sc/default/hook" ["event_types"]=> array(3) < [0]=>string(10) "subscribed" [1]=> string(20) "conversation_started" [2]=> string(7) "message" > >

php use statement

Hii
Thanks for sharing this plugin.
I tried the plugin but I get errors when it comes to 'use' statements.
Do you know how to replace the use statement with other functions that will help me using the plugin properly?

Не могу запустит setup.php

Не могу запустить setup.php, при запуске выходит ошибка.

Не как не могу разобраться.

Invite new users to public account viber

How can I implement the function of inviting a user to a public account?
It is possible?

Media content in forwarded message

Bot not receive links to media if user forwarded message to bot.
For example, user sending forwarded message and bot receive next array:

How to figure out what was sent and how to work with it I don't know. Have an idea?
Maybe problem not in your library but I'm confused.

Can I send message to my personal viber with php or python?

Can I use this library to send sms to my viber number?

Remote error: notSubscribed

I was wondering do we really need this line?

Hello there i was really wondering if we really need this line as it is working without it too and why we need this line when we define $bot two lines below?

Ошибки при запуске

Система Deb 8 64
Vesta CP
php 5.6.30
Ставлю
composer require bogdaan/viber-bot-php
composer require monolog/monolog
composer require php-console/php-console
Делаю setup.php.
Получаю 500 ошибку
[client 52.0.253.232:47674] PHP Warning: is_dir(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s):
[client 52.0.253.232:47674] PHP Fatal error: Uncaught exception 'UnexpectedValueException' with message 'There is no existing directory at "/tmp" and its not buildable
PHP Fatal error: Call to undefined method Viber\Api\Exception\ApiException::getError() in
Права стоят. Даже пробовал 777/
В чем проблема может быть? Спасибо

Recommend Projects

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.

Vue.js

🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

Typescript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

TensorFlow

An Open Source Machine Learning Framework for Everyone

Django

The Web framework for perfectionists with deadlines.

Laravel

A PHP framework for web artisans

Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

javascript

JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

Some thing interesting about web. New door for the world.

server

A server is a program made to process requests and deliver data to clients.

Machine learning

Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

Visualization

Some thing interesting about visualization, use data art

Some thing interesting about game, make everyone happy.

Recommend Org

Facebook

We are working to build community through open source technology. NB: members must have two-factor auth.


Ранее мы рассматривали, как создать и настроить своего собственного телеграм-бота, но обойти стороной другой не менее популярный месенджер Viber — точно нельзя.


Твой чат-бот скорее всего будет работать. Или нет.

Создаем Viber бота через админ-панель вайбер


Нужно больше роботов!

Заполняем небольшую анкету. Сначала подбираем изображение для бота — картинка 400 на 400 пикселей


Картинка для бота — 400 на 400 пикселей

В процессе заполнения самой анкеты, пожалуй, важно только поле URI — это по сути ссылка на вашего бота, суть которой станет ясна позже. Также не забудьте выбрать нужную категорию для вашего бота, например Группы — Хобби, как ниже на скрине.


Заполните все поля, в том числе контактную информацию


Код получен

Готовый пример кода PHP

Пробуем скачать готовый пример бота на PHP. Есть нормальный (и маленький) понятный пример на гитхаб — качаем отсюда. Качаем два файла index.php и set_webhook.php и размещаем у себя на вебхостинге в отдельной папочке


Все нонятно

У кого не удалось скачать исходные файлы с гитхаба, качайте отсюда прямой ссылкой.

В файле set_webhook.php делаем правки, вписываем значения нашего вновь созданного бота:

Теперь обратим внимание на файл index.php и сделаем и в нем изменения.


После того, как мы убедились, что хук установлен — чисто теоретически бот должен работать. Возникает вопрос, а как найти ваш чат бот в Viber? А вот тут и оказывается, что чат бот не будет участвовать в поиске, пока не наберет хотя бы 6 подписчиков

Казалось бы, что можно воспользоватся ссылкой такого плана: viber://pa?topsites=TopsitesCC — то, что мы указывали при регистрации. Но нет, на момент написания статьи — это не работало.

Вторым вариантом (рабочим вариантом!) добавления бота в список контактов является сканирование QR-кода из программы вайбер на смартфоне. Данный код виден в настройках бота в партнерской панели Viber


Просто отсканируйте код через Viber

Вот тут все работает как надо. Если честно, не ожидал от разработчиков вайбер такого странного решения. По сути еще одним способом поделиться ссылкой на бот — является отправка приглашения другому пользователю вайбера от пользователья, который уже в этой группе состоит.


Эти программисты — они такие странные…

Что же умеет данный бот?


Бот уже общается — это неплохо

Думаю, это не совсем то, ради чего мы его создавали, поэтому давайте откроем на редактирование файл index.php и немного изучим код, чтобы понять, что он делает и как.


Для ленивых приведу кусок кода, который можете вставить в отдельном PHP файле и потренироваться и понять принцип:

А теперь давайте вернемся к Viber PHP боту и чуть расширим его функционал. Итак, меняем код в файле index.php, а именно вот эту часть:

Меняем PHP код ответа бота, добавив в конце строк \n — перенос строки:

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

Далее расширение функционала бота — только вопрос вашей фантазии. В общем, если нужен вайбер бот, то


Котэ врать не будет!

Как создать чат-бота для Viber

Термины и определения

Чат-бот Viber – программа Viber, реализованная через паблик-аккаунт, с которой пользователь может взаимодействовать для достижения какой-либо цели.

Паблик-аккаунты – специально созданные публичные аккаунты для общения и взаимодействия с клиентами (в том числе с помощью чат-ботов). Частным случаем паблик-аккаунтов являются паблик-чаты, где общается какая-либо группа людей.

Viber-ссылка – специальная ссылка для открытия контакта, чат-бота или другого ресурса в приложении Viber. Начинается с особого префикса viber://. Например: viber://pa?chatURI=hello2bot.


Создаем чат-бота

Создадим самого простого чат-бота для Viber. Почему самого простого? Потому что у новичков обычно возникает уйма вопросов. Естественно, такой простой чат-бот нужен для проверки того, что все работает. Тем более функционал простого бота можно расширять дальше по своему усмотрению.

Чат-бот Viber

По сути, площадка для размещения чат-бота – это обычный web-хостинг. А сам бот в нашем случае – один PHP-файл.

Если вы сами хотите развернуть хостинг, то можно использовать связку: Apache + PHP + MySQL, но лучше воспользоваться услугами хостинг-провайдера, где установлено все необходимое, например, Timeweb.

Технология работы бота проста:

А теперь пошаговый процесс создания (из 13 шагов):

1. Переходим на сайт разработки. Предварительно у вас на смартфоне должно быть установлено приложение Viber.

2. Вводим номер телефона и авторизуемся.

Viber код подтверждения

Согласие на создание бота


6. После этого вы получите токен для аутентификации Viber. Скопируйте и сохраните его.

8. Распакуйте и откройте файлы index.php и php из папки Viberbot.

Папка Viberbot


9. В этих файлах необходимо изменить некоторые параметры.

В файле index.php необходимо изменить:

  • AUTH_TOKEN на токен вашего паблик-аккаунта Viber.
  • HelloBot на имя вашего бота, под которым он будет вам отвечать.

HelloBot


В файле set_webhook.php необходимо изменить:

  • AUTH_TOKEN на токен вашего паблик-аккаунта Viber.
  • WEBHOOK_URL на URL вашего вебхука, т.е. URL нахождения файла index.php на вашем хостинге.

WEBHOOK_URL


10. По требованию Viber на вашем сайте должен быть установлен сертификат SSL. Такой сертификат можно заказать как платно (например, Sectigo Positive SSL), так и бесплатно (SSL Let's Encrypt). Подробнее о SSL-сертификатах читайте в Справочном центре.

SSL Timeweb


11. Когда SSL-сертификат станет активным, заходим в панель хостинга Timeweb через файловый менеджер:

  • Заходим к себе на сайт.
  • Создаем новую папку для бота.
  • Загружаем два файла.

Загрузка новых файлов на сервер

Viberbot директория

Загружаем файлы

Вебхук


13. Заходим в Viber на смартфоне. Последовательно нажимаем в меню: Еще –> Паблик аккаунты –> HelloBot.

Viber

Паблик-аккаунт в Вайбер

Бот Вайбер

Проверяем результат

Проверка бота Viber

Бот работает


Нами был успешно создан и запущен чат-бот для Viber. Теперь можно подумать о расширении его функционала. Документацию Viber REST API можно прочитать на официальном сайте мессенджера.

Читайте также: