![](/img/trans.png)
[英]Telegram bot API edit InlineKeyboard with python-telegram-bot not working
[英]Python-telegram-bot How to send InlineKeyboard via url
嘗試發送附加了回調keybord的消息,bot不好。 給我打電話
TypeError: must be str, not ReplyKeyboardMarkup
找不到任何示例如何正確執行。
keyboard = [[InlineKeyboardButton("Выполнено", callback_data='Done')],
[InlineKeyboardButton("MAC", callback_data='MAC'),
InlineKeyboardButton("Phone", callback_data='Phone'),
InlineKeyboardButton("История", callback_data='History')]]
reply_markup = ReplyKeyboardMarkup(keyboard)
requests.post(url='https://api.telegram.org/bot{blah}/'
'sendMessage?chat_id=' + str(query.message.chat_id) + '&text="TEST"&reply_markup=' + reply_markup)
首先,你應該使用InlineKeyboardMarkup
而不是ReplyKeyboardMarkup
來作出了解創建的標記對象InlineKeyboardButton
秒。
然后,您可能應該只使用bot
對象通過bot.send_message(query.message.chat_id, 'TEST', reply_markup=reply_markup)
發送消息。
最后,如果確實需要使用requests
來執行手動HTTP請求,則應在requests.post()
的data
提供參數。
import json
import requests
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
keyboard = [[InlineKeyboardButton("Выполнено", callback_data='Done')],
[InlineKeyboardButton("MAC", callback_data='MAC'),
InlineKeyboardButton("Phone", callback_data='Phone'),
InlineKeyboardButton("История", callback_data='History')]]
reply_markup = InlineKeyboardMarkup(keyboard)
data = {"chat_id": query.message.chat_id,
"text": "TEST",
"reply_markup": json.dumps(reply_markup.to_dict())}
requests.post(url='https://api.telegram.org/bot{blah}/sendMessage', data=data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.