Инлайн команда Телеграм это

Отслеживать
задан 4 авг 2017 в 21:00
23 1 1 серебряный знак 5 5 бронзовых знаков

3 ответа 3

Сортировка: Сброс на вариант по умолчанию
Отслеживать
ответ дан 5 авг 2017 в 10:24
3,710 1 1 золотой знак 18 18 серебряных знаков 47 47 бронзовых знаков

Столкнулся с тем же вопросом и вижу что уже неактуальный топик. Но просто оставлю это здесь:

  • включить через ОтецБот’а BotSettins -> Inline Mode -> «Turn on»
  • о реализация в боте, не плохой лессон: https://mastergroosha.github.io/telegram-tutorial/docs/lesson_07/

Отслеживать
25 6 6 бронзовых знаков
ответ дан 11 янв 2020 в 18:31
Антон Воробьев Антон Воробьев
11 4 4 бронзовых знака

запиши все команды(если надо сделать пусты, введи /empty) и отправь боту. Он должен отправить «Success! Command list updated. /help» Актуально на 2023!

Отслеживать
ответ дан 6 мар в 16:49
1 1 1 бронзовый знак

    Важное на Мете

Связанные

Похожие

Подписаться на ленту

Лента вопроса

Создаём слайдер в Telegram боте / Самозаменяющиеся инлайн-команды / Различие команд в PuzzleBot

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник: ru.stackoverflow.com

Работа с ботами в Telegram. Встроенный режим

Работа с ботами в Telegram. Встроенный режим. Для большинства пользователей боты уже давно стали неотъемлемой частью Telegram. Но иногда взаимодействие с ботом вызывает неудобство. Бота нужно либо добавлять в группы, либо писать ему личные сообщения.

3 способ коммуникации с ботами — встроенный режим (инлайн)

Разберем,что же это такое, зачем нужно и как использовать. Используя встроенный режим вы можете обращаться к ботам напрямую в любой группе (чате) или канале — и абсолютно всё равно, является ли бот участником группы,канала,или нет. Благодаря встроенному режиму можно работать с ботом мгновенно,минуя все вышеописанные действия.

Боты, умеющие работать во встроенном режиме, могут выполнять множество задач — найти и сразу,без телодвижений типа пойти в галерею и найти GIF, картинку, видео – отправить нужный материал пользователям.То есть,вам не нужно ничего хранить в телефоне.

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

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

Удобно? Теперь у вас появился еще один повод чтобы пользоваться самому Telegram и пригласить друзей и знакомых в Телеграм.

Как работает инлайн-команда в телеграм

Приглашаем вас на наши каналы Telegram

Если вас интересует красота и молодость, подпишитесь на канал Леди Молодость, ссылка на канал>>

Понравилась статья?

Поделитесь, нажмите на кнопку Вашей любимой социальной сети!

  • ТЕГИ
  • Telegram
  • боты в Telegram
  • как работать с ботами в телеграм
  • мессенджер Телеграм
  • работа с ботами в Telegram
  • раскрутить канал в Telegram

Источник: all-mw.ru

Бот для telegram на php. Отложенный постинг, кнопки, инлайн-запросы.

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

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

Как, используя бота, публиковать новости в свой канал

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

Для решения этой, с виду не такой уж простой, задачи надо добавить нашего бота в канал, как администратора. Чтобы сделать это, я, на своей текущей версии телеграма, перехожу в админку канала и добавляю туда своего бота из вышеуказанной статьи. Переходим в управление группой -> administrators

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

Код

А тут, на самом деле, ничего сложно нет. Фича именно что не очевидная, для многих. Сейчас поясню. По идее нам надо отправлять в канал сообщения через метод $bot->sendMessage(), однако, первый аргумент этого метода требует наличия некоего ID чата, в который отсылается сообщение. В случае с чатами, конфами и прочей фигней эти самые ID — цифровые, как у групп в VK, а вот в случае с каналами такие ID соответствуют названию самих каналов. Поэтому чтобы отослать в канал «Красные котлеты» сообщение «Тест» сгодится такой код:

Куда прописывать этот код? Да прямо между $bot = new TelegramBotApiClient($token,null); и $bot->run(); впишите. В смысле примерно так, как на картинке.

Как запустить? Да легко, переходим на страничку с вашим ботом и руками нажимаем там F5(обновить).

Ну и, собственно, вот результат работы данной команды —

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

Теперь ничего не стоит добавить вызов данной страницы в, например, CURL и получить отложенный постинг. Разберетесь. Так-же был вопрос — как сделать, чтобы бот публиковал в канал по команде, или публиковал в несколько каналов. — Запросто — используйте банальные GET параметры, вот как примерно в этом наброске кода:

Теперь достаточно обратиться к файлу index.php с get параметрами вида index.php?bname=revcombot. Дальше, думаю, сами разберетесь.

Как вывести кнопки после сообщения и обработать их

Для начала о каких кнопках идет речь. Вот на картинке вы видите их:

Как вывести такие кнопки используя telegram-bot/api? Вообще это весьма обширная тема, я чуть ли не два часа потратил на эти гребаные кнопки и попытки их осилить. Выводятся они следующим кодом:

// Кнопки у сообщений $bot->command(«ibutton», function ($message) use ($bot) < $keyboard = new TelegramBotApiTypesInlineInlineKeyboardMarkup( [ [ [‘callback_data’ =>’data_test’, ‘text’ => ‘Answer’], [‘callback_data’ => ‘data_test2’, ‘text’ => ‘ОтветЪ’] ] ] ); $bot->sendMessage($message->getChat()->getId(), «тест», false, null,null,$keyboard); >);

То есть по команде /ibutton вылезут к нам две кнопки Answer и ОтветЪ. С выводом разобрались, теперь нам надо их обработать. Это очень сложная часть всей свистопляски, которая отняла у меня изрядно времени. Делается все так:

// Обработка кнопок у сообщений $bot->on(function($update) use ($bot, $callback_loc, $find_command)< $callback = $update->getCallbackQuery(); $message = $callback->getMessage(); $chatId = $message->getChat()->getId(); $data = $callback->getData(); if($data == «data_test»)< $bot->answerCallbackQuery( $callback->getId(), «This is Ansver!»,true); > if($data == «data_test2»)< $bot->sendMessage($chatId, «Это ответ!»); $bot->answerCallbackQuery($callback->getId()); // можно отослать пустое, чтобы просто убрать «часики» на кнопке > >, function($update)< $callback = $update->getCallbackQuery(); if (is_null($callback) || !strlen($callback->getData())) return false; return true; >);

Вот и все. Собственно, вот результат работы этой функции:

Как вы видите — все отлично работает. Ну и вторая кнопка для большей… полноты материала.

Как вы видите так — тоже можно.

Обработка reply-кнопок

Если вы работали с botfater’ом то видели там такую панельку из кнопок, примерно:

То есть этот вид кнопок появляется не под сообщением, а под вашим текстовым полем. Как вывести эти кнопки? Вот код —

// Reply-Кнопки $bot->command(«buttons», function ($message) use ($bot) < $keyboard = new TelegramBotApiTypesReplyKeyboardMarkup([[[«text» =>»Власть советам!»], [«text» => «Сиськи!»]]], true, true); $bot->sendMessage($message->getChat()->getId(), «тест», false, null,null, $keyboard); >);

Тут задается команда /buttons после которой и появляются эти команды. Как обработать? На самом деле никакой особой обработки эти кнопки не требуют, в смысле их надо обрабатывать как обычные текстовые сообщения. В данном случае, я сделал это через метод on() —

// Отлов любых сообщений + обрабтка reply-кнопок $bot->on(function($Update) use ($bot)< $message = $Update->getMessage(); $mtext = $message->getText(); $cid = $message->getChat()->getId(); if(mb_stripos($mtext,»Сиськи») !== false)< $pic = «http://aftamat4ik.ru/wp-content/uploads/2017/05/14277366494961.jpg»; $bot->sendPhoto($message->getChat()->getId(), $pic); > if(mb_stripos($mtext,»власть советам») !== false)< $bot->sendMessage($message->getChat()->getId(), «Смерть богатым!»); > >, function($message) use ($name)< return true; // когда тут true — команда проходит >);

Еще по теме:  Telegram для windoows xp

Ну и, собственно, если на любую из этих кнопок ткнуть, получим результат.

Обработка inline-запросов

Как сделать в своем боте такую-же фичу?

На самом деле эта задачка заставила меня попотеть изрядно. Я перелопатил половину буржунета и весь код долбаной библиотеки telebram-bot/api, отдебажил там все ключевые функции и только потом смог найти нормальный ответ. И знаете что? Вам, таки, повезло что я его нашел!

Подготовка бота

Не только лишь все боты могут обрабатывать inline запросы, а только те, в которых автор включил эту фичу. Идем на botfather’а и выполняем там команду /setinline, и выбираем бота. Вылезет что-то типа того:

Вот ТЕПЕРЬ можно начинать написание кода.

Код

Собственно в библиотеке бота есть метод $bot->inlineQuery(), именно он отвечает за обработку контекстных запросов. Но как заставить его работать? Оказывается у каждого поля, отправляемого в результат запроса свой формат + для некоторых полей надо данные готовить заранее. Однако я все прокомментировал, так что разобраться с этим функционалом вы сможете в два счета. А вот мне пришлось чуть ли не в слепую угадывать что и куда ставить из-за отсутствия вменяемой документации к библиотеке.

// обработка инлайнов $bot->inlineQuery(function ($inlineQuery) use ($bot) < mb_internal_encoding(«UTF-8″); $qid = $inlineQuery->getId(); $text = $inlineQuery->getQuery(); // Это — базовое содержимое сообщения, оно выводится, когда тыкаем на выбранный нами инлайн $str ; $base = new TelegramBotApiTypesInlineInputMessageContentText($str,»Html»); // Это список инлайнов // инлайн для стихотворения $msg = new TelegramBotApiTypesInlineQueryResultArticle(«1″,»С. Есенин»,»Отрывок из поэмы `Страна негодяев`»); $msg->setInputMessageContent($base); // указываем, что в ответ к этому сообщению надо показать стихотворение // инлайн для картинки $full = «http://aftamat4ik.ru/wp-content/uploads/2017/05/14277366494961.jpg»; // собственно урл на картинку $thumb = «http://aftamat4ik.ru/wp-content/uploads/2017/05/14277366494961-150×150.jpg»; // и миниятюра $photo = new TelegramBotApiTypesInlineQueryResultPhoto(«2»,$full,$thumb); // инлайн для музыки $url = «http://aftamat4ik.ru/wp-content/uploads/2017/05/mongol-shuudan_-_kozyr-nash-mandat.mp3»; $mp3 = new TelegramBotApiTypesInlineQueryResultAudio(«3″,$url,»Монгол Шуудан — Козырь наш Мандат!»); // инлайн для видео $vurl = «http://aftamat4ik.ru/wp-content/uploads/2017/05/bb.mp4»; $thumb = «http://aftamat4ik.ru/wp-content/uploads/2017/05/joker_5-150×150.jpg»; $video = new TelegramBotApiTypesInlineQueryResultVideo(«4»,$vurl,$thumb, «video/mp4″,»коммунальные службы»,»тут тоже может быть описание»); // отправка try< $result = $bot->answerInlineQuery( $qid, [$msg,$photo,$mp3,$video],100,false); >catch(Exception $e) < file_put_contents(«rdata»,print_r($e,true)); >>);

Как это работает в боте? Смотрим.

Проверить как это работает во всех трех случаях вы сможете прямо в telegram’е, ну а тут выведу вам результат теста только одного варианта с отрывком поэмы Сергея Есенина.

Надеюсь я смог решить вашу проблему.

Исходники

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

RevcomBot исходники

Скачано: 0, размер: 578.6 KB, дата: 24.Май.2017

Желающие могут поиграться с демонстрационным ботом тут — revcom_bot

Источник: pozi.pro

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