Можно ли написать бота на php

Как создать простого бота для Телеграм на PHP

Здравствуйте, дорогие читатели. Раз вы здесь, то пришли вы сюда из поиска по фразе «бот для телеграм на пхп». И работающего бота вы сделать сможете, прочитав данную статью. Вопросы для чего вам бот в Телеграм, здесь не обсуждаются, хотя мы сами используем собственного публичного бота @novelsite_bot для информирования о нас и наших услугах и сборе заявок. А также у нас есть закрытый бот, который мы используем как информатор в CRM (уведомления, свои задачи) и как показала практика — это действительно удобно.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Создадим простого бота для мессенджера Telegram с использованием PHP. Данная статья создана исключительно в поучительных целях и не претендует на полноту или правильность подхода. Весь код бота очень простой и может быть освоен начинающими PHP-разработчиками.

Предупреждаю сразу профессионалов и перфекционистов от программирования — вам здесь делать нечего Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php. Никаких фреймворков и гитхабов! Все будет очень просто и примитивно, но работать будет. И это главное. Всем счастья Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Шаг 1: подготовка

Что нам понадобится:

Шаг 2. Регистрация вашего бота в Телеграм

Да, да. Бот еще даже не создан, но перед этим его уже нужно зарегистрировать, чтобы получить уникальный идентификатор, чтобы в дальнейшем обращаться к BOT API Telegram.

Шаг 3. Создаем код бота

Будем делать прямо в корне сервера (не самый верный подход, можно создать папку bot, а в ней уже файл verysimple_bot.php). Для этого на сервере создадим файл verysimple_bot.php в котором и будет весь код бота. Не забываем, что весь код в файле verysimple_bot.php должен быть в кодировке UTF-8.

Для редактирования файлов кода и заброске их на сервер удобно использовать FAR Manager — в нем есть и подсветка синтаксиса и FTP/SFTP клиент для копирования файла на сервер.

Делаем заготовку бота, который сможет выдавать список команд и информацию о нас:

Шаг 4. Делаем WebHook и конкретизируем код бота

Итак, базовый код бота мы сделали. Он сможет отвечать на 2 команды: /help (Помощь) и /about (Информация о нас). Но как теперь это заставить работать и, как работает функция message_to_telegram?

https://api.telegram.org/bot 1234567899:AAKJhkkjhkjhKhKhjkhkhk_kJhgkjhJhgjghjhG /setWebhook?url= https://www.mysite.ru/verysimple_bot.php

Не забываем где красное заменяем на свои данные!
Как сформируете эту ссылку — вставьте её в браузер и запустите!

Шаг 5. Добавим возможность делать заявки через бота

Заявкой будем считать сообщение или вопрос, которое можно будет отправить через нашего бота какому-то пользователю, назовем его менеджер компании. То есть нам нужно организовать такую цепочку:

Получим идентификатор chat_id пользователя кому нужно отсылать заявки:

Сохраняем состояние бота для каждого пользователя

Далее, важный момент: у нас любой присоединившийся пользователь сможет сделать заявку, и чтобы бот понимал, что находится в режиме ввода заявки именно с этим пользователем, мы должны сохранять и считывать состояния бота для каждого пользователя отдельно!

Теперь дополним код бота, добавив запись и отлов состояния и отправив заявку менеджеру компании, если состояние отправки заявки.

Скачать данный пример: verysimple_bot.php (2 kb)

Шаг 6. Регистрация команд бота

Теперь, если у вас все работает и бот отзывается на все команды, можно будет зарегистрировать эти команды у отца ботов @BotFather

Вот и все — простой бот работает! Всем спасибо, если дочитали и что-то заработало.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php
Николай Комарков

Источник

Пишем простого чат-бота для Telegram на PHP

Шукюров Заур, разработчик @KinomanBot и @GaidarForum_bot, написал руководство по созданию простого чат-бота.

24 июня 2015 года разработчики Telegram открыли платформу для создания ботов (программ, которые выполняют определенные действия по заданному алгоритму). За полтора года работы платформы набралось много интересных чат-ботов, решающих множество проблем и позволяющих с пользой провести время в мессенджере.

Шаг 1: регистрация бота у @BotFather

Прежде чем начать писать код, нового бота нужно зарегистрировать у «папы всех ботов» — @BotFather, чтобы получить токен (ключ) для работы с Telegram API. Регистрация проходит в 5 простых этапов:

По итогу регистрации получаем наш токен — 375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s.

Будьте осторожны: никогда и никому не показывайте токен, иначе ваш бот может быть скомпрометирован. Если по несчастливой случайности кто-то нехороший все-таки узнал ваш токен, то заменить его можно всё в том же @BotFather, нажав на кнопку «Revoke current token» в разделе «API Token».

Шаг 2: выбираем способ обработки запросов

Исходя из официальной документации, Telegram API основан на простых HTTP-запросах. Существует всего два различных способа обрабатывать запросы, которые пользователи будут посылать боту:

Мы остановимся на втором варианте, но у него есть ограничение: у вас на сайте обязательно должен быть установлен SSL-сертификат, чтобы все запросы проходили через безопасный протокол HTTPS. Самоподписанные и бесплатные сертификаты «Let’s Encrypt», которые поддерживает большинство хостингов, также подходят.

Пример настройки самоподписанного сертификата из официальной документации Telegram.

Шаг 3: пишем код

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

Перво-наперво привязываем через метод SetWebhook бота к нашему файлу-обработчику. Сделать это можно при помощи библиотеки, но есть вариант быстрее и проще – это построить вот такую ссылку:

https://api.telegram.org/bot375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s/setWebhook?url=https://yoursitehere.ru/directory/bot.php,

375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s — это наш токен,

https://yousitehere.ru/directory/bot.php — ссылка на файл-обработчик на нашем сайте.

Открыв в браузере эту ссылку, должен прийти JSON-ответ со значением «Webhook was set», что будет означать, что вебхук установлен, и теперь все запросы от пользователей будут присылаться по адресу файла-обработчика.

Переходим к самому главному — обработке этих самых запросов и написанию функционала бота. Ниже представлен полный листинг файла-обработчика:

$keyboard = [[«Последние статьи»],[«Картинка»],[«Гифка»]]; //Клавиатура

$reply = «Добро пожаловать в бота!»;

$reply = «Информация с помощью.»;

>elseif ($text == «Картинка») <

>elseif ($text == «Гифка») <

>elseif ($text == «Последние статьи») <

$reply = «По запросу \»».$text.»\» ничего не найдено.»;

Разберем всё по порядку.

1. Сначала мы подключаем скачанную библиотеку, указав путь (лучше полный) до файла автозагрузчика.

include(‘vendor/autoload.php’); //Подключаем библиотеку

2. Создаем экземпляр класса в переменной $telegram и передаем в него наш токен. В переменной $result получаем информацию о сообщении, которое пришлет нам Telegram.

$telegram = new Api(‘375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s’); //Устанавливаем токен, полученный у BotFather

3. Затем определяем главные переменные: текстовое сообщение, уникальный идентификатор пользователя и его юзернейм. Если предстоит работа с БД, то не забывайте про фильтрацию (или лучше используйте PDO).

4. Создаем нашу клавиатуру, состоящую из трех кнопок.

$keyboard = [[«Последние статьи»],[«Картинка»],[«Гифка»]]; //Клавиатура

5. Теперь, когда мы обозначили все переменные, можно перейти к обработке полученного сообщения. Для этого можно использовать конструкцию switch-case либо if-else. Так как принципиальной разницы между ними нет, остановимся на втором варианте, как наиболее привычном.

В самом начале проверяем, заполнена ли переменная $text и является ли сообщение пользователя текстовым.

Если нет, то отправляем пользователю с помощью метода sendMessage сообщение с просьбой ввести текстовое сообщение.

6. Рассмотрим вариант, когда пользователь прислал сообщение с командами /start или /help

$reply = «Добро пожаловать в бота!»;

$reply = «Информация с помощью.»;

В этом случае помимо текста из переменной $reply будет подгружаться клавиатура, состоящая из трёх кнопок: «Последние статьи», «Картинка» и «Гифка». Реализуется это с помощью метода replyKeyboardMarkup, параметрами которого являются:

7. После появления клавиатуры пользователь явно захочет попробовать потыкать на расположенные на ней кнопки, и вот что у нас «под капотом» в этом случае

>elseif ($text == «Картинка») <

>elseif ($text == «Гифка») <

>elseif ($text == «Последние статьи») <

8. Для отправки картинки используется метод sendPhoto, для отправки гифки – sendDocument. В обоих случаях Telegram позволяет передавать прямую ссылку на файл, что безусловно очень удобно, но не так быстро, как если бы мы передавали file_id уже отправленной на сервера Telegram картинки или гифки.

9. Для получения последних статей используется простой парсинг RSS ленты Нетологии при помощи встроенной в PHP функции simplexml_load_file.

В параметрах метода sendMessage можно заметить два новых значения:

10. В качестве смайла (стрелка вправо) используются символы \xE2\x9E\xA1. Список всех смайлов в таком виде можно найти на специальном сайте.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

11. После того, как вы протестируете бота и будете уверены в его работоспособности, можно отправлять его на всеобщее обозрение.

Благодаря удобному API, боты Telegram могут стать хорошей платформой для автоматизации рутинных действий, настройки уведомлений, удобному и быстрому получению информации и созданию игр. Бесплатными площадками для продвижения могут послужить каталоги ботов Telegram Bot Store, TeleChappy или 50bots. А анализировать активность пользователей можно с помощью бесплатного инструмента для аналитики ботов от Яндекса — Botan.

От редакции

PHP — один из самых популярных языков программирования. Его легко изучать, с ним легко работать, у него мощное сообщество. 5 мая «Нетология» запускает курс «PHP/SQL: back-end разработка и базы данных», где ведущие программисты расскажут об управляющих конструкциях, циклах, функциях, о строках и массивах. Вы узнаете все про реляционные базы данных и язык запросов SQL, научитесь устанавливать и настраивать веб-сервер nginx и php, управлять базами данных различной сложности. Ждем вас!

Источник

Пишем бота для Telegram на php

Вступление

Сегодня telegram является активно развивающейся платформой, а потому актуально будет осветить для широкой аудитории тему создания собственных ботов для этого мессенджера. Хотя-бы поверхностно. Для полноценного освящения этой темы я планирую написать две статьи, первая для php вторая для c#. Почему две? Дело в том, что правила телеграма(защищенность) задают для ботов очень жесткие правила размещения. В частности бот должен находиться на https домене. Сегодня мы будем рассматривать именно такой вариант бота, как наиболее очевидный. К сожалению, разрабатывать бота вам придется прямиком на сервере, то есть я предполагаю что у читателя уже есть свой домен и собственно уже налажен ftp доступ к этому домену. На дэнвере php боты работать не будут. Ну ладно не буду врать — можно сделать чтобы оно и на дэнвере работало, но давайте не будем писать такие велосипеды в этой статье и подождем до следующей, в которой я как раз опишу данный способ на примере с c#(а нахрена нам php с дэнвером когда есть такой замечательный инструмент). В этой статье мы общаемся с telegram api через webhook, это для особо прошаренных. Читающий статью человек должен уметь пользоваться: ftp, ssh(консоль сервера).

Шаг первый. Домен и https

Начнем пожалуй с домена, на котором будет размещаться наш будущий бот. Я беру свой старый домен — вебача. Как вы видите там нет https и я не покупал для этого домена https сертификат. Но тем не менее сертификат нужен иначе бота там не разместить. К счастью, есть cloudflare, который, в числе прочих преимуществ, дает нам возможность использовать эмулированный https. Переносим наш домен туда, это делается очень быстро бесплатно и автоматически. Зарегистрируйтесь, нажмите addsite поменяйте ns адреса у домена и все будет установлено. Если этого краткого описания вам не достаточно — можете нагуглить в сети мануал по подключению cloudflare, моя статья этому не посвящена.

И так мы подключили домен. Теперь надо перейти на панель своего сайта:

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

После чего выбрать вкладку Crypto и пункт SSL установить в flexible.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Что делает этот пункт? Он эмулирует безопасное соединение до вашего сайта.
Проверяем — https://2webach.ru/

Как вы видите — все работает. У вас должно быть абсолютно так-же, без этого, бота вы запустить не сможете! Будет выдаваться ошибка «HTTP Version Not Supported», так что если вы пришли на эту страницу в поисках решения — перечитайте данный пункт внимательно и повторите все то я описал.

Шаг второй. Знакомство с Botfather.

Botfather — это такой бот, через которого регистрируют все остальные боты. Без него нам никак не обойтись, поэтому давайте откроем telegram и перейдем по ссылке — BotFather

Там все крайне просто, вбиваем /help и смотрим на список доступных команд:

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

собственно сейчас нас интересует команда /newbot, пишем ее и создаем бота указывая его название. В данном случае я назову своего бота — Рев.ком.стих и будет он у нас выдавать стихи о Маяковского и Есенина (когда я его доделаю, однако весь процесс в эту статью я включать не буду).

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Нам выдадут токен, на скриншоте он замазан в целях…, ну вы сами понимаете. Этот токен нам и нужен, сохраните его куда-нибудь в текстовый файл, он нам еще пригодится.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Далее можно задать оформление для бота. Например картинку — логотип. Для этого используем команду /setuserpic после чего загружаем картинку. Так-же задаются описание бота и прочие вещи до которых вы допрете и без моего участия.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Ну и чтобы проверить установилась картинка или нет переходим на бота вбивая его имя через собачку в поиск

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Теперь самое время заняться backend частью, а именно написанием кода для команд нашего бота, но сначала настроим среду разработки.

Шаг третий. Среда для разработки.

Собственно в качестве библиотеки для обращения к API я буду использовать данный проект — TelegramBotApi у которого нифига нет документации, зато код довольно просто читается. В любом случае в этой статье я постараюсь описать максимально подробно все варианты работы с этой библиотекой, так что документация вам не понадобится вообще.

Но сначала давайте ее установим. Для этого будем использовать composer. Короче говоря будем делать все по «правилам», если этот термин вообще применим к php. Хороший язык, гибкий, не вгоняет в рамки, я знаете ли люблю его за эту вот гибкость. Но любителям «сапога в жопе» конечно всегда больше подходят ruby или какой-нибудь go в котором даже нормально библиотеку в своей папке не разместить, только в gopath. Однако так уж вышло, что данную библиотеку руками ставить будет геморойнее, чем через composer, я тут непричем, просто экономия времени. Для начала нам понадобится ssh соединение с вашим сервером. Для таких дел я предпочитаю ZOC terminal т.к. работаю из под windows. Скачать этот продукт можно на торрентах, сами найдете короче. Далее запускаем ваш терминал и заходим на сервер, после чего переходим к директории нашего домена(команда cd).

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Я не хочу размешать наш проект в корне директории, потому что там может быть например… форум. А вот в подпапке — запросто. Так что давайте эту самую подпапку и создадим через команду mkdir

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

В данном случае подпапка называется ‘revcom_bot’.

Теперь в эту папку надо засунуть composer, собственно делается это тремя командами:

Просто вставляете их в ssh консоль по очереди и все.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Отлично, если вы справились с этой задачей, то далее нам следует установить компонент telegram-bot/api, для этого просто пишем в консоли:

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

После чего проверяем создались ли новые файлы в нашей директории. Вклчаем FTP менеджер, у меня это WinScp (бесплатное приложение, советую вам использовать его вместо глючной файлзиллы), переходим в папку проекта и смотрим что там есть:

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Отлично. Вот теперь можно начинать писать код.

Шаг четвертый. Кодинг

Минимальная версия PHP

Для использования кода, который я демонстрирую, у вас должен стоять минимум php-5.6

Собственно создаем в директории файл index.php в котором мы и будем писать код нашего проекта. Внимание: кодировка файла — utf-8 без bom! Вообще описание кода по шагам это не моя сильная сторона, поэтому я просто буду вставлять код с комментариями в статью, а вы читайте и повторяйте.

После того как переменная бота создана мы можем обращаться к api, но сначала нам надо зарегистрировать webhook.
Что такое webhook? Это такой механизм по которому выполняется связка бота с telegram’ом. Когда пользователь в телеграме вводит команду ее надо как-то передать в на сервер и получить ответ. Webhook как раз это и делает — указывает телеграму куда передавать команду пользователя. Но так как изначально телеграм НЕ ЗНАЕТ где мы разместили нашего бота, то надо ему об этом обязательно сообщить.
Для этого у нас есть команда: $bot->setWebhook

Отлично, можно запустить наш бот и проверить, перейдя к нему из браузера. Если в папке бота создался файл registered.trigger значит телеграм теперь знает о том, где находится наш бот.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Приготовления пройдены, самое время зарегистрировать первые команды для бота. В спецификации телеграма сказано, что каждый бот должен отвечать на две обязательные команды. Первая команда — /start и вторая — /help, создадим их.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Отлично! А теперь давайте разберемся немного с API нашей библиотеки.

Команды задаются блоком:

Отправка сообщения выполняется командой:

Отправка картинок

Отправка картинок пользователю выполняется через передачу телеграму ссылки на эту картинку. Телеграм САМ скачивает изображение и отдает пользователю, нам ничего качать не надо! В качестве демонстрации я загружу сейчас на свой блог изображение и отошлю его пользователю на команду /getpic.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Как вы видите — все работает.

Отправка документа

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

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

После чего добавить такую команду:

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Точно так-же можно передать войсы:

Получение сообщений из чата

Теперь осталось только добавить чуточку интерактивности, например заставить бота в чате постить что-нибудь с определенным шансом.

Дабы сделать это у API есть очень годная команда .on() ее мы и будем использовать в самой простой из форм.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

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

Задаем список команд

Теперь команды работают а значит настало время сообщить о том что они у нас есть в Botfather’а. Идем туда и вбиваем /setcommands

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

И к стати если вы где-то опечатались можете заново вбить /setcommands и переопределить команды.

Смотрим добавились команды на страницу бота или нет:

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Заключение

Думаю этого будет достаточно. Статья получилась полной, я разве что не осветил методы отправки аудио файлов, но думаю вы и сами сможете на них посмотреть без моего в этом участия — тут, я ведь разобрался, хоть и не нашел ни документации нормальной ни освещения данных вопросов в интернете. Зато теперь в этой статье я рассказал вам все что сам знаю о создании ботов к telegram на php. Однако, как я говорил выше эта статья всего лишь часть всех возможностей. Советую вам прочитать вторую статью уже про C# и работу с telegram api БЕЗ webhook, https и прочих геморроев. Проще говоря хостинг не понадобится.

Надеюсь, дорогой читатель, что я не зря писал эту статью. Ах да.

Скачать исходники

Думаю оставлять вас без исходников к этому проекту будет глупо, чтож, держите.

Источник

Как написать чат-бота на PHP для сообщества ВКонтакте

На текущий момент большинство крупных сообществ ВКонтакте уже имеют ботов, актуальность этой темы обуславливается огромным спросом на круглосуточную работу приложения, оповещение при вступлении в сообщество и выходе из него, рассылку информационных сообщений, именно бот сообщества ВКонтакте может решить эти задачи. В статье мы рассмотрим решение основных задач, которые часто возникают в любом крупном сообществе.

Настройка Callback API для бота сообщества ВКонтакте

Подготовка серверной части к подключению

Callback API — это инструмент для отслеживания активности пользователей в Вашем сообществе ВКонтакте. С его помощью Вы можете реализовать новые полезные функции, например:

Инструкция по подключению подробно описана в отличной документации для разработчиков ВКонтакте.

Разберем её подробнее, для размещения скрипта чат-бота мы должны иметь функционирующий веб-сервер.

Для работы с callback API ВКонтакте рекомендует использовать протокол https, инструкцию по бесплатному получению сертификата cloudflare и настройки сервера вы сможете найти в статье, которую можно найти в поисковой системе Google по запросу Бесплатный SSL сертификат CloudFlare.

По окончании настройки сервера вы должны иметь рабочий web-сервер, на который мы загрузим скрипт нашего бота.

Настройка сообщества ВКонтакте

Генерация ключа доступа

Важным моментом в работе бота сообщества являются ответы на пользовательские сообщения и различные события, для того, чтобы мы могли взаимодействовать с пользователем от имени сообщества, нам необходимо создать специальный ключ. Для этого перейдем во вкладку «Управление сообществом«.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Далее спустимся в раздел «Работа с API» → «Ключи доступа«.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Для создания ключа необходимо нажать «Создать ключ» и выбрать необходимые права, которые мы предоставим нашему боту.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

В нашем случае нам хватит доступа к сообщениям сообщества.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Сохраним данный ключ, он нам понадобится при настройке backend.

Настройка callback API

Теперь мы должны связать наш сервер и сообщество, для этого мы должны указать данные нашего сервера и создать секретный ключ. Для этого нам необходимо перейти в раздел управления сообщества и спуститься во вкладку «Работа с API».

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Дальше наступает очень важный момент, нам необходимо ввести адрес нашего сервера и придумать секретный ключ, в качестве ключа выступает любая строка, а в качестве адреса, соотвественно, адрес к php скрипту на сервере.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Введем секретный ключ и нажимаем «Сохранить», после мы должны получить соответствующее уведомление о успешной установке ключа. Кнопку «Подтвердить» напротив поля с адресом сервера не нажимаем.

Заданный Вами секретный ключ будет передаваться с каждым уведомлением от сервера в отдельном поле secret. Это позволит Вам достоверно определять, что уведомление пришло именно от нашего сервера.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Также мы должны запомнить код, который должен вернуть сервер, запишите его, он нам понадобится при настройке backend.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Настройка типов событий

Важным моментом в работе бота сообщества, является ответы на пользовательские сообщения и различные события, для того, чтобы мы могли взаимодействовать с пользователем от имени сообщества, нам необходимо указать какие именно события мы хотим получать. Так как мы собираемся отслеживать входящие сообщения, вступления в сообщества и выход из него, то нам необходимо установить соответствующие галочки. Для этого перейдем во вкладку «Управление сообществом«.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php
Далее спустимся в раздел «Работа с API» → «Типы событий«.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на phpМожно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Установите необходимые пункты в данном разделе.

Настройка backend бота ВКонтакте

Следующим этапом мы должны создать специальный скрипт, который будем принимать запросы от callback API вконтакте и определенным образом реагировать на события. Создадим, например, php-скрипт handler.php, адрес к этом скрипту, после настройки backend, мы должны указать в настройках сообщества.

Обратите внимание на значения следующих переменных:

В confirmationToken хранится код, которые сервер должен вернуть, в нашем случае:

token хранит в себе ключ доступа, который мы генерировали в главе «Генерация ключа доступа»

secretKey мы задавали в разделе управления сообщества callback API. Итоговый код выглядит следующим образом (handler.php):

После того как вы загрузите код, вы должны вернуться в раздел «Управление сообществом» → «Работа с API» → «Callback API», ввести адрес до скрипта и нажать «Подтвердить»

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

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

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Дополнительные возможности

Реализация приветствия при вступлении в сообщество ВКонтакте

На данном этапе мы уже имеем настроенный сервер и обработчик бота, все возможные события указаны в документации, она хорошо написана, рекомендую с ней ознакомиться.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Мы будем отлавливать событие group_join, для этого в операторе switch создадим новый раздел. Мы не будем рассматривать join_type подробно, так как у нас открытая группа, но вы можете обрабатывать этот параметр на ваше усмотрение.

Можно ли написать бота на php. Смотреть фото Можно ли написать бота на php. Смотреть картинку Можно ли написать бота на php. Картинка про Можно ли написать бота на php. Фото Можно ли написать бота на php

Полный код обработчика бота ВКонтакте с функцией приветственного сообщения:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *