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

В начале 2016 года в Telegram появились «встроенные» боты
. Команды им можно отправлять непосредственно внутри чатов. Очень круто и удобно придумано. С ними можно за секунду, не выходя из окна переписки, найти ссылку на нужную статью, текст песни, фото в Instagram и тут же отправить их собеседнику.

Вот 12 ботов, которые помогут общаться быстрее и эффективнее.

1. Видео на YouTube

Думаю, многим знакома проблема: глубокая ночь, силы на исходе, лежишь себе в кроватке и ведешь в мессенджере непринужденную беседу. Заходит разговор о музыке, хочется кинуть ссылку на клип, но влом… Влом переходить в браузер, открывать YouTube и искать.

Но есть способ сэкономить душевные силы и 10 секунд бесценного жизненного времени:

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

2. После этого в любом диалоге можно набирать @vid ключевая фраза для поиска видео
.

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

@vid

2. Статьи в «Википедии»

Аналогично выполняется поиск по «Википедии». Для этого надо установить еще один бот и набирать @wiki ru название статьи
. При желании, ru
можно заменить на код другого языка.

@wiki

3. Коубы

Зацикленные видеоролики длиной в несколько секунд помогут оживить разговор не хуже стикеров и эмодзи. Для их поиска надо набирать @coub тема видео

@coub

4. Тексты песен

@iLyricsBot
находит тексты песен (в том числе русских) и добавляет к ним ссылки на YouTube и mp3-файл для скачивания.

@iLyricsBot

5. Перевод слов

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

@lutilbot

6. Боты

@storebot
поможет быстро найти ссылку на нужный бот и поделиться ей с собеседником.

@storebot

7. Товары

А @my_ali_bot
предназначен для быстрого поиска вещей на AliExpress. Пригодится, если точно знаешь, какой товар хочешь показать собеседнику. Но выбирать товар «с нуля» такими способом не очень удобно.

@my_ali_bot

8. Делаем заметки

@bnotebot
— самый гениальный из всех. В нем можно сохранить готовые тексты (телефоны, адреса, универсальные ответы) и быстро подставлять их в диалоги по мере необходимости.

@bnotebot

9. Картинки из Instagram

Есть легкий способ развеять тоску, пока собеседник долго-долго набирает сообщение. Можно запустить — @instainlinebot bigbeastus
и посмотреть, как Рома поднимает штангу. При желании, что-то из фото и видео можно отправить в диалог.

@instainlinebot

10. Твиты

Еще внутри диалога можно почитать твиты, которые найдутся по ключевым словам.

@TweetItBot

11. Pocket

@pocketasbot
позволяет быстро находить статьи, которые сохранены в вашем Pocket. Команда :favoritet
отображает список «избранных» материалов, а :unread
— непрочитанных.

@pocketasbot

12. Ссылки на «Позволь поискать за тебя в…» для DuckDuckGO, Google, Bing и Wikipedia

А вот способ достойно ответить на «Ну объясни, мне лень гуглить что-то…». Просто набираете @lmddgtfybot поисковый запрос
, выбираете поисковик и получаете готовую ссылку на результаты.

Как выглядит результат@lmddgtfybot

Кто-то может подумать: «Ну что, я совсем овощ что-ли, чтобы лениться перейти в браузер?». Если вы из таких, то рекомендую попробовать пару inline-ботов и оценить их удобство. К хорошему быстро привыкаешь.

Подборки полезных ботов от iPhones.ru:

Эти 10 ботов Telegram помогут познакомиться, выучить английский и многое другое10 полезных ботов Telegram, на которые стоит подписаться

🤓
Хочешь больше? Подпишись на наш Telegramнаш Telegram.
… и не забывай читать наш Facebook и Twitter 🍒

iPhones.ru

Зачем нужны inline-боты и как ими пользоваться?

—>

Ирина Чернова

@sweet_princess

Рас*здяйка. Графоманка. Боюсь людей. Страдаю манией величия. Фото удалено модераторами, так как внешность безнадежно испорчена тяжелой жизнью.

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

Благодаря встроенному режиму, боты стали вездесущими: вы можете обращаться к роботам в любом чате, группе или канале — совершенно не важно, является ли бот участником группы или канала, или нет. Встроенные боты могут выполнять практически любые задачи — например, быстро отправить GIF, картинку, видео с YouTube, статьи с Wikipedia, и т. д.

Вот некоторые примеры, созданные командой Telegram: @gif, @vid, @pic, @bing, @wiki, @imdb и @bold. Чтобы увидеть их в действии, просто наберите имя пользователя робота и какое-нибудь ключевое слово в поле сообщения. После этого бот предложит вам несколько вариантов подходящих ответов.

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

Нажмите на «через @username»
, чтобы отправить запрос боту. Недавно использованные боты будут отображаться в панели предложений, когда вы наберете @
в поле сообщения.

Встроенные боты, как, впрочем, и всё остальное в Telegram, являются частью открытой платформы, доступной для любого разработчика в любой стране. Совсем скоро появятся сотни встроенных ботов — сразу, как только разработчики начнут разбираться с новым режимом.

Если вы — разработчик, обратите внимание на документацию: Встроенные боты. Также подписыватесь на новости про ботов: @BotNewsRU

URL-кнопки

Для создания кнопки используется тип InlineKeyboardMarkup, давайте создадим кнопку «Наш сайт»:

@bot.message_handler(commands = ['url']) def url(message):     markup = types.InlineKeyboardMarkup()     btn_my_site= types.InlineKeyboardButton(text='Наш сайт', url='https://habrahabr.ru')     markup.add(btn_my_site)     bot.send_message(message.chat.id, "Нажми на кнопку и перейди на наш сайт.", reply_markup = markup) 

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

Switch-кнопки

Этот тип кнопок предназначен для перенаправления пользователя в какой либо чат, с последующей активацией (встроенного) inline-режима общения с ботом. Данный режим можно активировать вручную: в чате, вводим: «@название бота», но switch-кнопки позволяют это сделать автоматически (помогая знакомиться с inline-режимом новичкам). Для того что-бы создать подобный переключатель, необходимо указать аргумент switch_inline_query
либо пустой, либо с каким-либо текстом.

@bot.message_handler(commands = ['switch']) def switch(message):     markup = types.InlineKeyboardMarkup()     switch_button = types.InlineKeyboardButton(text='Try', switch_inline_query="Telegram")     markup.add(switch_button)     bot.send_message(message.chat.id, "Выбрать чат", reply_markup = markup) 

Теперь, если мы нажмем на кнопку и выберем чат, вот что получится:Шаг 1:
Нажимаем на кнопку.
Шаг 2
:Выбираем чат.
Шаг 3:
Активировался встроенный inline-режим.

Callback-кнопки

Ну и наконец самое интересное — это кнопки с обратной связью: позволяют динамически обновлять сообщение/встроенные кнопки (не засоряя при этом ленту), а так же отображать уведомление в верху чат-бота или модальном окне. Например, их можно использовать для просмотра длинного сообщения, аналогично пагинации страниц на сайтах, или например сделать календарь. Я не стану изобретать велосипед, а через поиск по GitHub, найду готовую библиотеку calendar-telegram. Выполнив указанные инструкции, получаем готовый календарь, который можно динамически изменять по нажатию на соответствующие кнопки:

@bot.message_handler(commands=['calendar']) def get_calendar(message):     now = datetime.datetime.now() #Текущая дата     chat_id = message.chat.id     date = (now.year,now.month)     current_shown_dates[chat_id] = date #Сохраним текущую дату в словарь     markup = create_calendar(now.year,now.month)     bot.send_message(message.chat.id, "Пожалйста, выберите дату", reply_markup=markup)

Так же можно добавить уведомление по нажатию на дату, для этого достаточно указать сообщение в ответе:

bot.answer_callback_query(call.id, text="Дата выбрана")

(Пример в десктопной версии)
(Пример в мобильной версии)
Если изменить show_alert
на True
, то мы получим модальное окно:

bot.answer_callback_query(call.id, show_alert=True, text="Дата выбрана")

Заключение

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

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации