Изначально Telegram был обычным мессенджером для базовой отправки сообщений. Чуть позже он начал обрастать новыми функциями. Многим Телега начала заменять другие социальные сети и даже самые разные сервисы интернета.
Чем полезен Telegram
На сегодняшний день, Телеграм — это огромный интернет-комбайн, где можно:
- Вести переписки, как в открытых чатах, так и в приватных (статья о секретном чате)
- Читать новости или потреблять другой контент с помощью каналов
- Загружать и скачивать файлы, тем более недавно появился менеджер загрузок
- Совершать купле-продажу разных типов товаров (даже писали об этом вот тут)
- Слушать музыку
Практически во всех вышеперечисленных случаях помогают именно боты. Например, для прослушивания музыки помогает бот, который переносит музыку из плейлистов ВКонтакте и загружает в свой канал. А при продаже товаров запускается бот, с помощью которого можно листать список товаров, класть их в корзину и оттуда оформлять покупку.
Как создать бота в Телеграме и получить его Api Token
Без помощи ботов это было бы сделать очень затруднительно. Если проще, то боты в Telegram автоматизируют какое-либо действие.
Впрочем, ранее мы уже писали о популярных ботах в Телеграме вот здесь.
Создание бота в Telegram: пошаговая инструкция
Нажимаем «Запустить», и в ответном сообщении сразу присылается меню. Оно на английском, но ничего сложного нет.
Выбираем /newbot, далее в сообщении пишем название своего нового бота.
Далее указываем username бота, по которому его можно будет найти, обязательно чтобы юзернейм заканчивался на «bot».
Наше рабочее название будет «GTOnidzuka_bot», далее мы его переименуем. Если юзернейм занят, то выбираем другой. Также BotFather присылает уникальный ключ, подобие пароля от бота, его никому нельзя показывать.
После того выбора имени нашего бота можно найти в поиске Телеграм или зайти на него по ссылке.
Теперь нам доступно редактирование бота. С помощью команд можно изменить аватарку, общее название, описания и т.д. Также в боковую кнопку «Меню» можно зашить ссылку на сайт или социальную сеть.
Основные команды в BotFather:
- /setname — изменить имя бота
- /setdescription — изменить описание бота
- /setuserpic — изменить аватарку бота
- /setcommands — задать команды для бота
- /deletebot — удалить бота
Наш бот создан и отображается в поиске, но пока еще ничего не умеет.
Больше статей на схожую тематику:
- Подробное руководство по GIF-анимации: где взять готовые гифки и как их создать самостоятельно
- Посевы ВКонтакте: полный гайд для запуска
- 10 советов, как написать пост в блоге, чтобы его комментировали
С помощью уникального токена и юзернейма бота можно подключить к различным сервисам и платформам.
Для нашей компании мы попробуем подключить бота через Manybot, он практически единственный позволяет пользоваться ботом для бизнеса бесплатно.
Для начала переходим на официальный сайт и пролистываем вниз страницы, где есть кнопка со ссылкой в Телеграм.
Итак, попадаем в Телегу к Manybot и там имеется русский интерфейс, что очень радует.
Тут нам и пригодится наш ранее скопированный ключ. Вставляем его в строку и отправляем. Далее нужно написать пару слов о том, что будет делать наш бот. У нас будет простой инфобот. Так и запишем.
Для теста мы создали новый канал. Но если есть уже хороший раскрученный канал, то можно внедрить и его.
Чтобы у бота в нем была власть, он должен быть администратором этого канала. Заходим в канал, добавляем нашего бота и даем ему все разрешения на управление каналом.
Для подключения канала к боту, нужно отправить тестовое сообщение. И да, нам пришло уведомление в канале. Простейшие функции уже работают.
Теперь мы можем настроить автопостинг, отложенный постинг и создавать другие команды.
Окей, давайте создадим парочку команд:
Первая команда будет отправлять ссылку на наши услуги. Для этого заходим в «Отца ботов», печатаем /setcommands и выбираем нашего бота. Также можно воспользоваться кнопками меню, кому как удобнее.
В строке пишем название команды, оно может быть любым, главное на латинице и через тире пишем описание команды, у нас это «Услуги и цены», далее нажимаем «Сохранить».
Команда создана, но она пуста. Теперь ей нужно задать действие. Для этого переходим в наш бот, далее в «Пользовательские команды», среди них выбираем наш «bang» и жмем «Редактировать ответы команды».
Сейчас нужно напечатать сообщение к команде — это как раз и есть ответное действие на ее вызов. Ранее мы решили, что при вызове команды, ответом будет ссылка на наш сайт. Поэтому просто вставляем ссылку.
Теперь при вызове команды /bang, в ответе будет ссылка на наш сайт.
Заметили, что также есть кнопка «Добавить вопрос»? Это некая форма обратной связи, если его добавить, то при вызове команды пользователю будет задан этот вопрос.
Добавим нетривиальное сообщение. После отправки нашего вопроса, предложим два варианта ответа для выбора пользователя.
Так выглядит итоговый результат. После того как пользователь тапнет на одну из кнопок, нам придет уведомление об ответе.
А вот и новые ответы на форму:
Если пользователь тапнет на «Хочу заказать услугу», то пользователя можно найти и написать ему.
Как вариант, можно добавить вопрос, на который пользователь сам ответит и будет иметь возможность прислать свой номер телефона для связи.
Далее мы создали еще несколько команд по похожему принципу. Сделали мы это для того, чтобы добавить полноценное меню с кнопками. Ведь пользователям будет очень неудобно вручную каждый раз набирать команду.
На этот раз добавили команды для всех подразделов нашего блога. Перед этим добавив команду /blog, она будет корневой.
Для удобства и лучшего восприятия все команды заканчиваются на blog, так как если мы решим добавить команды с услугами, будет проще в них ориентироваться.
Нравится статья? Тогда смотрите наши курсы!
- Курс «SMMщик с нуля: от чайника до профи»
- Мини-курс «Как продавать в соцсетях»
- Вебинар «Контент, который продает»
Итак, у нас есть много команд, которые мы будем обрамлять в удобные кнопки меню. Но сперва «зашиваем» в команды ссылки на наши подразделы блога как это описано выше.
Для добавления кнопок жмем на «Пользовательские команды», а далее кликаем на «Настроить главное меню».
Затем нажимаем на «Добавить пункт меню». Из ранее добавленных команд выбираем доступную, задаем ей имя, которое будет отображаться и кликаем «Сохранить».
Таким образом мы добавили кнопки для всех основных команд. Также добавили кнопки социальных сетей и контактов.
Вот так теперь выглядит наш бот.
При переходе в социальные сети появляются их кнопки:
А при переходе в блог сперва появляется опрос:
Конечно, не совсем логично, новичкам сперва бы блог почитать, но от постоянных читателей нам важен фидбек.
И далее появляются его подразделы.
В целом, если публиковать статьи в том же Telegraph и добавлять их в бота, то материалы можно читать, даже не выходя из Telegram.
Если зайти с другого аккаунта, бот отображается вот так:
Наш бот подключен к тестовому каналу, через него (бота), можно отправлять сообщения пользователям. К примеру, оповещение о новой записи в блоге, например.
Для этого в главном меню бота нажимаем на «Отправить новое сообщение пользователям», печатаем наше сообщение и жмем «Отправить пост подписчикам».
Прежде чем отправить пост, можно посмотреть, как он будет выглядеть, или задать время для публикации.
Спустя пару секунд придет уведомление о новой статье в блоге.
Также мы прикрутили автопостинг с помощью RSS-ленты. Кстати, в одной из наших статей писали, что это и как ее подключить, рекомендуем прочесть здесь.
Помимо RSS, можно подключить и Youtube.
Примеры роста кликов, конверсий, заказов и прибыли:
- Привлечение лидов на курс SMM по 7 рублей
- Создание, оформление и ведение сообщества ВКонтакте для туристической компании
- Свыше 88 000 показов с ограниченным бюджетом
Так просто?
Вуаля — теперь наш совсем простой бот умеет показывать нужную информацию пользователю, хоть и за счет ссылок, а также принимать обратную связь. Конечно же, функционал этим не ограничивается и с помощью ботов можно создать нечто большее, но это уже совсем другая история.
А если вы еще не подписаны на наш канал, то советую исправить это недоразумение. 🙂 Делимся только полезными новостями из мира SEO и интернет-маркетинга.
44
0
0
0
1
Спасибо за реакцию, она бесценна! Обязательно подпишитесь на наш Telegram-канал, публикуем много интересных и актуальных материалов. Не пользуетесь Telegram, тогда познакомьтесь с Катей и подпишитесь на нашу рассылку. ×
Источник: 1ps.ru
Токен бота в телеграмм как узнать
Привет! Сегодня я покажу вам как узнать токен бота в телеграмме. Он может понадобится вам для подключения плагина WordPress, или для создания автоматической рассылки в ваш телеграмм и т.д. Вы сможете создать нового бота и получить его токен. Всё очень просто! Смотрите далее!
Откройте на своём смартфоне приложение Telegram. Вверху справа нажмите на значок поиска.
Вверху в поле поиска введите запрос — botfather . Внизу в результатах поиска появится данный бот. Нажмите по его названию.
BotFather — это отец всех ботов в телеграм. С помощью него можно создать любого бота.
Далее, на странице главного бота, внизу нажмите на кнопку Старт .
Далее, вам сразу придёт сообщение со списком настроек для ботов. Вверху вам нужно нажать на /newbot — create a new bot .
После чего вам придёт сообщение: Alright, a new bot. How are we going to call it? Please choose a name for your bot . Вас попросили в ответ написать имя вашего нового бота. Напишите любое имя и отправьте его в ответ на это сообщение.
Далее, вам придёт ещё один запрос: Good. Now let’s choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot . Вас попросили написать в ответ логин или имя пользователя бота. Пример, напишите произвольное имя плюс через нижний дефис bot на конце. Пример: top_bot.
Когда вы ответите на два сообщения, указав имя и логин своего бота, вы получите сообщение, где будет указан токен вашего бота. Вверху будет указана ссылка на страницу вашего бота в телеграм.
Telegram бот через webhook
Я тогда давно написал статью про создание Telegram бота, и обещал дополнить её описанием настройки работы через webhook, но так и не дополнил. Вот только сейчас дошли руки.
Что это такое
Как пишут в документации, общаться с серверами Telegram бот может двумя способами:
- getUpdates — pull: ваш бот постоянно дёргает сервер Telegram и проверяет есть ли новые сообщения;
- setWebhook — push: по мере поступления новых сообщений сервер Telegram отправляет их вашему боту.
Разницу можно изобразить следующим образом:
Очевидно, что второй способ ( setWebhook ) рациональнее для всех участников процесса. Однако в нём присутствует неявная сложность: кто-то должен принимать сообщения от Telegram на стороне бота, то есть необходим веб-сервер или его эквивалент.
Как настроить
Что нужно сделать:
- Заиметь доменное имя для сервера и получить на него сертификат (например, от Let’s Encrypt). Документация также говорит, что в случае самоподписанного сертификата можно обойтись и просто IP адресом, но этого я не пробовал;
- Запилить серверную часть на стороне бота (куда будет ломиться Telegram);
- Зарегистрировать адрес серверной части в Telegram (зацепить webhook на endpoint), чтобы Telegram знал, куда ломиться с сообщениями.
Сертификат
С доменом и сертификатом просто. Домен у меня уже был, а сертификат я получил по этой инструкции.
Вариант с самоподписанным сертификатом на прямой IP адрес я оставляю вам на самостоятельное изучение.
Серверная часть
Серверная часть чуть посложнее. Я переделал текущую реализацию бота на pyTelegramBotAPI, используя пример для AIOHTTP.
Ставим необходимые пакеты:
pip install pyTelegramBotAPI pip install aiohttp pip install cchardet pip install aiodns
И сокращённо код бота теперь такой:
Что здесь происходит: мы запускаем мини-веб-сервер, который слушает порт 8443 и отвечает на запросы через определённый endpoint, который образован токеном бота. Токен используется здесь как достаточно уникальный идентификатор, чтобы какой-нибудь мимокрокодил из интернета не навызывал бота и не натворил дел. Полный адрес endpoint’а будет выглядеть вот так: https://YOUR.DOMAIN:8443/YOUR-TOKEN/ .
Обратите также внимание на отличия от стандартного примера из репозитория:
- в качестве файла сертификата указан fullchain.pem , а не cert.pem ;
- удалён код снятия и установки webhook’а.
Так как бота я запускаю не из-под root’а, сервис начал валиться с такой ошибкой:
python-bot[1824]: Traceback (most recent call last): python-bot[1824]: File «/usr/local/bin/bot/bot.py», line 142, in python-bot[1824]: context.load_cert_chain(WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV) python-bot[1824]: PermissionError: [Errno 13] Permission denied systemd[1]: telegram-bot.service: Main process exited, code=exited, status=1/FAILURE systemd[1]: telegram-bot.service: Failed with result ‘exit-code’.
То есть, у пользователя, из-под которого выполняется скрипт, нет доступа к /etc/letsencrypt/ , чтобы открыть файл сертификата. Я попытался дать доступ к каталогу для новой группы, включив в неё этого пользователя:
groupadd letsencrypt usermod -a -G letsencrypt userforbot chgrp -R letsencrypt /etc/letsencrypt/
Но он один фиг не мог открыть файлы оттуда, даже простой ls выдавал ошибку доступа. В общем, или мои познания Linux полный отстой, или одно из двух. Пришлось тупо назначить его владельцем:
chown -R userforbot:letsencrypt /etc/letsencrypt/
Тогда сервис запустился нормально.
Регистрация
Теперь осталось самое, как оказалось, сложное — зарегистрировать endpoint бота в Telegram. Сложности возникли потому, что я сначала неправильно понял принцип составления endpoint’а, а также из-за проблем с проверкой сертификата.
Для установки/регистрации webhook’а нужно выполнить следующий HTTP запрос (можно просто открыть этот URL в браузере):
https://api.telegram.org/botYOUR-TOKEN/setWebhook?url=https://YOUR.DOMAIN:8443/YOUR-TOKEN/
Пока я экспериментировал и разбирался с форматом endpoint’а, Telegram возвращал мне нормальный результат:
«description»: «Webhook was set», «ok»: true, «result»: true >
Но потом я его видимо задолбал, и он стал возвращать мне следующее:
«ok»: false, «error_code»: 504, «description»: «Gateway Timeout» >
Но оказалось, что это ни на что не влияет, и webhook нормально устанавливается, так что можно даже не дожидаться таймаута, а просто отменять запрос через пару секунд.
Проверить статус webhook’а можно таким запросом:
https://api.telegram.org/botYOUR-TOKEN/getWebhookInfo
Если всё нормально, должно вернуть такое:
«ok»: true, «result»: «url»: «https://YOUR.DOMAIN:8443/YOUR-TOKEN/», «has_custom_certificate»: false, «pending_update_count»: 0, «max_connections»: 40 > >
Как видим, в поле url стоит наш endpoint.
Однако, мне оно сейчас возвращает такое:
«ok»: true, «result»: «url»: «https://YOUR.DOMAIN:8443/YOUR-TOKEN/», «has_custom_certificate»: false, «pending_update_count»: 0, «last_error_date»: 1543762687, «last_error_message»: «SSL error «, «max_connections»: 40 > >
Что указывает на некие проблемы с сертификатом. При этом бот работает нормально, то есть эта ошибка ни на что не влияет. Однако, если вместо fullchain.pem оставить cert.pem (как было указано в примере), то бот работать перестанет.
Стоит также отметить, что если вы установили webhook, то опрос Telegram через getUpdates работать больше будет. Чтобы снять webhook, надо отправить тот же самый запрос, что и для установки, но на этот раз без параметра url :
https://api.telegram.org/botYOUR-TOKEN/setWebhook
«ok»: true, «result»: true, «description»: «Webhook was deleted» >
Ну и всё, не так уж и сложно. Если бы в документации (и сторонних манулах из интернетов) была указана такая простая вещь, что для webhook’а всего-то нужен лишь веб-сервер на стороне бота, я бы это сделал уже сто лет назад. Конечно, продвинутым чувакам это скорее всего было очевидно сразу, но мнe — нет.
Note that even if you sign-in with your e-mail or GitHub, you still won’t be subscribed to replies. That is by design of remark42, unfortunately. To get updates about new replies/commends you need to explicitly subscribe to them either via e-mail or RSS.
Источник: decovar.dev