Как сделать предложку в Телеграмм канале

Всем привет, я решила написать бота для своего телеграмм канала, с помощью которого пользователи смогут предлагать новости, а эти новости будут пересылаться мне:

1. Пользователь нажимает на одну из четырех кнопок:

bot.on(«message», (msg) => < const < id >= msg.chat; bot.sendMessage( id, «Привет, » + msg.from.first_name + «. Я бот для предложки новостей», options ); >); var options = < reply_markup: < inline_keyboard: [ [< text: «Предложить новость 1», callback_data: «news1» >], [< text: «Предложить новость 2», callback_data: «news2» >], ], >, >;

2. В зависимости от нажатой кнопки пользователь получает ответ:

bot.on(«callback_query», function onCallbackQuery(callbackQuery) < const action = callbackQuery.data; const msg = callbackQuery.message; const opts = < chat_id: msg.chat.id, message_id: msg.message_id, >; let text; if (action === «news1») < text = «Вы можете написать ваш вопрос который касается страны»; >if (action === «news2») < text = «Вы можете написать ваш вопрос который касается города»; >> bot.editMessageText(text, opts); >);

И после этого я застряла и не могу найти решение для свои дальнейших идей:

СОЗДАЛ ПРЕДЛОЖКУ В ТЕЛЕГРАМЕ

1. Вместе с ответом бота (text) я хочу чтобы была кнопка «Назад», которая бы возвращала к первому пункту (выбора какого рода новость предложить).
2. После того как пользователь напишет новость, я хочу чтобы ему показывало сообщение, о том что эта новость будет опубликована. А сам текст новости пересылался мне.

Я буду благодарна за советы или ссылки на ресурсы где решена подобная проблема.

  • Вопрос задан более двух лет назад
  • 989 просмотров

Источник: qna.habr.com

Report-Bot — Предложка для Telegram [Часть 3]

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

Для сегодняшних задач обновил библиотеку и добавил класс-хранилище. Принцип его работы похож на тот, что я описывал в статье по ВК-боту. Но всё же чутка отличается.

Еще по теме:  Телеграмма на английском языке примеры

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

Далее создаём php-файл, в котором будем писать бота (bot.php) и сразу же подключаем библиотеку:

Как сделать бота обратной связи в телеграм – LivegramBot

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

const REPORT_CHAT_ID = »; // ID чата, в который будут приходить репорты

Создаём экземпляр класса Bot, попутно инициализируя $chat_id и $message:

$tg = telekotBot::create( ‘токен’ ) // Создаём экземпляр класса Bot, передаём в метод create() токен бота ->initChatId( $chat_id ) // Инициализируем айди чата, из которого поступают боту сообщения (например, это может быть айди пользователя, написавшего боту) ->initMessage( $message ); // Инициализируем текст сообщения, которе было отправлено боту

И создаём экземпляр класса Storage, передавая в метод start() экземпляр класса Bot (он у нас записан в переменную $tg):

$ctx = telekotStorage::start( $tg ); // Создаём экземпляр класса Storage для работы с хранилищем

Поскольку репорт можно будет написать после введения команды /start — добавляем соответствующее условие в код:

if ( $message == ‘/start’ ) < // Тут продолжим писать код >

В связи с тем, что отправка репорта осуществляется в два этапа (1 — ввод команды /start, 2 — отправка репорта) — нужно записать статус диалога с написавшим боту пользователем в кэш, а также дать юзеру дальнейшие инструкции:

$ctx->ctx(); // Создаём файл в кэше и ставим статус диалога в положение 1 $tg->reply( ‘Привет, напиши своё репорт/новость/обращение в следующем сообщении’ ); // Отправляем мессаг юзеру

Метод ctx() создаёт в папке cache новый файл (формата *user_id*.php) и устанавливает статус 1 в сгенерированном массиве.

Значения из кэша можно извлекать методом get() по ключу (в нашем случае ключ — ‘status’). Поэтому в блоке elseif проверяем, писал ли уже этот пользователь боту или нет. Если статус равен единице — значит писал, в противном случае условие не выполняется.

Еще по теме:  Как переименовать файл в Телеграмме

else if ( $ctx->get( ‘status’ ) == 1 ) < // Тут продолжим >

Больше никаких данных пользователь вводить не будет, а значит из хранилища запись можно удалять. Делаем это, используя метод delete():

$ctx->delete(); // Удаляем запись из кэша

Ну, и осталось отослать репорт админу и уведомить юзера об успешной отправке:

  • 5id15
  • 23.08.2022
  • 4 755
  • 1
  • 29

Источник: kotoff.net

Создаем бот для сбора контента от подписчиков канала

Создаем бот для сбора контента от подписчиков

Как создать бот для сбора контента от подписчиков — рассказываю в сегодняшней статье. Разберу пошагово простой и доступный способ. Многие каналы собирают контент от подписчиков (новости, гифки, картинки, видео и пр.), а потом выкладывают лучшее в ленте своего сообщества. Например, известный канал Mash.

Создаем бот для сбора контента от подписчиков

Для этого создаются специальные боты. Туда подписчики присылают свой контент.

Создаем бот для сбора контента от подписчиков

Создать такой бот вполне возможно каждому на базе бесплатного конструктора умных чат-ботов Fleep.

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

Создаем бот для сбора контента

Создаем бот для сбора контента от подписчиков

У официального бота присутствует галка подтверждения (осторожно, существуют фейки).

2. После запуска бота, он выдает нам пост с возможными командами.

Создаем бот для сбора контента от подписчиков

3. Вводим команду /newbot и получаем сообщение «Введите имя бота».

Создаем бот для сбора контента от подписчиков

Даем ему имя, например «Контент бот».

4. Название дано, выбираем юзернейм (на окончании обязательно должно быть слово «bot», о чем нас и предупреждают). Например, «livecontent_bot». Если бот ругается, значит юзернейм занят и следует попробовать другой.

Создаем бот для сбора контента от подписчиков

Бот готов, получаем поздравления и токен бота.

Создаем бот для сбора контента от подписчиков

Оформляем аватар и описание бота

1. Используем команду /setuserpic, затем выбираем созданного бота и отправляем фото.

Создаем бот для сбора контента от подписчиков

2. Аватарка сделана, добавим описание. Есть две команды: /setdescription и /setabouttext. Команда /setabouttext дает описание бота в шапке. Команда /setdescription дает описание бота при старте. Сначала вводим /setabouttext и отправляем текст для описания бота в шапке.

Создаем бот для сбора контента от подписчиков

3. Отлично, описание бота добавлено. Выглядит оно вот так.

Создаем бот для сбора контента от подписчиков

4. Командой /setdescription добавляем описание бота при старте.

Еще по теме:  Как быстро раскрутить Телеграмм канал

Создаем бот для сбора контента от подписчиков

Выглядит оно вот так.

Создаем бот для сбора контента от подписчиков

Бот готов к работе.

Подключаем бот к Fleep

Создаем бот для сбора контента от подписчиков канала

2. Нажимаем на кнопку «Fleep.бизнес» внизу (/business), чтобы создать и настроить бота.

Создаем бот для сбора контента от подписчиков канала

Создаем бот для сбора контента от подписчиков канала

4. Бот подключен к конструктору. Пора настроить приветственное сообщение. По умолчанию оно такое: « Напишите свой вопрос и вам ответят в ближайшее время».

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

Все, готово!

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

Проверяем работоспособность бота

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

1. Итак, я запускаю созданный бот на втором аккаунте Телеграм. Сначала нахожу его в поиске и нажимаю кнопку «Старт». Вот он.

Создаем бот для сбора контента от подписчиков канала

Отправляю боту контент (изображение).

Отправка контента боту

Получаю изображение в боте на первом аккаунте.

Прием контента от пользователя через бот

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

Подключаем бот к чату

А что если подключить бот к чату и получать в нем контент от подписчиков? Возможно? Вполне.

1. Создаем чат и называем его, например, «Контент»

2. Добавляем созданного бота в него с правами администратора.

3. Проверяем работоспособность. Для этого я снова отправляю контент (изображение) в бота со своего второго аккаунта.

Отправляем контент

И получаю его уже в чате (в том, где бот подключен).

Получаем контент в чате

Заключение

Создать свой бот для сбора контента от подписчиков не так уж и сложно. Достаточно использовать представленную в статье инструкцию.

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

Успехов вам! До новых встреч в следующих статьях. С уважением, Дмитрий Толстой.

Источник: blogger-tolstoy.ru

Рейтинг
( Пока оценок нет )
Загрузка ...