python - 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)
解决方案
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)
推荐阅读
- npm - 安装后我尝试在我的 tute.js 文件上运行 nodemon,但它一直显示如下
- javascript - 从函数体外部调用 React setState
- matlab - 是否有一个 MATLAB 函数来进行 k 均值聚类,其中 k 的最大值由距离阈值确定?
- electron - Typeorm 在我的电子应用程序中不起作用(this.driver connect 不是函数)
- azure-api-management - Azure APIM 开发人员门户 - 选择要探索的 API 修订版
- javascript - Codemirror - 如何为装订线选项添加多个参数?
- c# - ASP.NET 核心 SignalR 调用中的 HttpContext 和响应标头?
- shopify - 光滑的滑块在移动 safari 浏览器中不起作用(shopify 商店)
- text-to-speech - 有什么我应该添加到我的代码中来改进我的代码的吗
- awk - 仅在特定列之间更改分隔符