Я столкнулся с очень странной проблемой, которая, вероятно, связана с кешем.
Итак, вот оно. Я разработал бота на nodejs для телеграммы.
У этого бота в прошлом БЫЛА настраиваемая клавиатура, которая не была «inline_keyboard» Я решил изменить это поведение и реализовал inline_keyboard.
Текущий код выглядит примерно так:
var options = < parse_mode: «Markdown», disable_web_page_preview: true, reply_markup: JSON.stringify(< inline_keyboard: [ [< text: ‘?? English’, callback_data: «SET ENGLISH» >,< text: ‘?? Français’, callback_data: «SET FRENCH» >] ] >) >; bot.sendMessage(msg.chat.id, «Please choose your language»,options);
Inline_keyboard работает нормально, но мой старый код (который был удален) все еще отображается для моих пользователей и очень раздражает.
Вот; он продолжает появляться, когда мои пользователи входят в мой чат.
Я получил следующие ресурсы:
- https://core.telegram.org/bots/api#replykeyboardremove
- Как убрать клавиатуру ответа без отправки сообщения в Telegram?
- https://core.telegram.org/bots/api#editmessagereplymarkup
Но я не знаю, как это реализовать, чтобы убрать этот надоедливый чат для моих пользователей.
СОЗДАЕМ КНОПКИ БОТУ | ИЗМЕНЕНИЕ СООБЩЕНИЙ | PyTelegramBotAPI | PYTHON
Какие-либо предложения ? Спасибо за вашу поддержку
15.04.2018 15:23
Оператор pass в Python — это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции — это способ манипулировать массивами и играть с массивами данных. Благодаря.
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний.
Все о массиве Dependency и его связи с useEffect.
Перейти к ответу Данный вопрос помечен как решенный
Ответы 1
Ответ принят как подходящий
Для этого могут быть разные решения, мое предложение:
Вы можете использовать самый первый ответ каждого пользователя, чтобы удалить клавиатуру, сначала используйте editMessageText, чтобы удалить клавиатуру, а затем отправьте ему соответствующий ответ. (обратите внимание, что сохраните идентификаторы chatID, которые вы удалили с клавиатуры, поэтому вы сделаете это для каждого пользователя только один раз )
bot.on(‘callback_query’, function onCallbackQuery(callbackQuery) < if (!didWeRemoveHisKeyboard(callbackQuery.from.id)) removeHisKeyboard(callbackQuery) //then handle the user response >) removeHisKeyboard = function(callbackQuery)< bot.editMessageText(callbackQuery.message.text, >).catch((err) => < //some error handling >).then(function(res)< if (res) addThisChatToHandledList(callbackQuery.from.id) >) >
Обратите внимание, что вам может потребоваться некоторая модификация этого кода в зависимости от используемого модуля node_module.
Спасибо за ваш ответ. Я протестирую и проголосую, если мне это поможет!
Telegram Bot на Python | Часть 3. Кнопки (клавиатура) с командами в чате с ботом
Для меня действительно важным моментом в этом ответе является линейка remove_keyboard: true. Без него клавиатура сохраняется для каждого сообщения.
Источник: reddeveloper.ru
Telegram bot — Удалить клавиатуру — Nodejs
Я столкнулся с очень странной проблемой, которая, вероятно, связана с кешем. Так вот оно. Я разработал бота в nodejs для телеграммы. Этот бот в прошлом был пользовательской клавиатурой, которая не была «inline_keyboard», я решил изменить это поведение и реализовал inline_keyboard. текущий код выглядит примерно так:
var options = parse_mode: «Markdown»,
disable_web_page_preview: true,
reply_markup: JSON.stringify( inline_keyboard: [
[ text: ‘ English’,
callback_data: «SET ENGLISH»
>, text: ‘ Français’,
callback_data: «SET FRENCH»
>]
]
>)
>;
bot.sendMessage(msg.chat.id, «Please choose your language»,options);
Inline_keyboard работает нормально, но мой старый код (который был удален) по-прежнему появляется для моих пользователей и очень неприятен. Вот; он продолжает появляться, когда мои пользователи входят в мой чат. Я был следующим ressources:
-
https://core.telegram.org/bots/api#replykeyboardremoveКак удалить клавиатуру ответа без отправки сообщения в Telegram?https://core.telegram.org/bots/api#editmessagereplymarkup
Но я не вижу, как его реализовать, поэтому я могу удалить этот раздражающий чат для своих пользователей. Какие-либо предложения? спасибо для вашей поддержки
спросил(а) 2018-04-15T16:23:00+03:00 5 лет, 1 месяц назад
Источник: progi.pro
Telegram Bot Создание и получение данных с кастомной клавиатуры в Telegram боте на c#
.
Одной из ключевых «фишек» Bot API стало появление кастомных клавиатур. На самом деле, это обычные шаблоны сообщений, не более, поэтому относиться к ним надо осторожно. Давайте просто покажу на примере, как делается такая клавиатура:
from telebot import types markup = types.ReplyKeyboardMarkup() markup.row(‘a’, ‘v’) markup.row(‘c’, ‘d’, ‘e’) bot.send_message(message.chat.id, «Choose one letter:», reply_markup=markup)
Создаем объект типа ReplyKeyboardMarkup(), добавляем построчно элементы (или можно сделать автоматическое разделение на строки при помощи аргумента row_width), передаем полученную разметку в метод send_message(). Если же мы хотим убрать кастомную клавиатуру вообще, заменив её на кнопочку [/], то вместо объекта ReplyKeyboardMarkup()надо создать объект ReplyKeyboardRemove() и просто передать его в send_message().
Последнее редактирование: 22.09.2020
YTreWQ
Member
18.04.2020 7 0
Я делал в Python через библиотека
Ссылка скрыта от гостей
.
Одной из ключевых «фишек» Bot API стало появление кастомных клавиатур. На самом деле, это обычные шаблоны сообщений, не более, поэтому относиться к ним надо осторожно. Давайте просто покажу на примере, как делается такая клавиатура:
from telebot import types markup = types.ReplyKeyboardMarkup() markup.row(‘a’, ‘v’) markup.row(‘c’, ‘d’, ‘e’) bot.send_message(message.chat.id, «Choose one letter:», reply_markup=markup)
Создаем объект типа ReplyKeyboardMarkup(), добавляем построчно элементы (или можно сделать автоматическое разделение на строки при помощи аргумента row_width), передаем полученную разметку в метод send_message(). Если же мы хотим убрать кастомную клавиатуру вообще, заменив её на кнопочку [/], то вместо объекта ReplyKeyboardMarkup()надо создать объект ReplyKeyboardRemove() и просто передать его в send_message().
Прошу прощения я не провильно составил вопрос я пишу бота на c# и хочу узнать как это реализовать на с#
Источник: codeby.net