簡體   English   中英

Python-telegram-bot如何通過url發送InlineKeyboard

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM