首页 > 解决方案 > InlineKeyboard 使用请求电报库

问题描述

我正在尝试使用请求 python 库在电报帖子下插入键盘,但我收到此错误:name 'inline_keyboard' is not defined. 我正在关注此文档https://core.telegram.org/bots/api#inlinekeyboardbutton

我的代码:

def SendMessage(chat_id, text, parse_mode, reply_markup):
    """
    :param chat_id integer or string
    :param text string max 4096 characters
    """

    response = requests.post(url="https://api.telegram.org/botMYTOKENXXX/sendMessage",
                             data={'chat_id': chat_id, 'text': text, 'parse_mode': 'Html', 'reply_markup': 'array_of_arrays'}).json()


keyboard = inline_keyboard[("text")]
SendMessage("myid", "text" , parse_mode="HTML", reply_markup = keyboard)

标签: pythontelegram

解决方案


inline_keyboard是一个字典键。您必须在字符串中输入它。
还可以使用json 库将字典转换为json

import requests,json

token="YourToken"

def SendMessage(chat_id, text, parse_mode, reply_markup):
    data={'chat_id': chat_id, 'text': text, 'parse_mode': parse_mode, 'reply_markup': reply_markup}
    return requests.post(url="https://api.telegram.org/bot"+token+"/sendMessage",data=data).json()
    

keyboard = json.dumps({'inline_keyboard':[[{"text":"hello","callback_data":"clicked"}]]})

SendMessage("myid", "text" , parse_mode="HTML", reply_markup = keyboard)

推荐阅读