如何在PowerShell开发的Telegram Bot中设置多行Inline Keyboard按钮
解决Telegram Bot多行Inline Keyboard配置问题
Telegram的inline_keyboard要求是二维数组结构:外层数组的每个子数组对应一行按钮,子数组里的元素就是该行的各个按钮。你的原代码把三个按钮都放在同一个子数组里,所以它们会显示在同一行。
修改后的代码如下:
$buttonsubcheck = @{ "text" = "Check status"; callback_data = "substatus" } $buttonsubtrial = @{ "text" = "Request trial"; callback_data = "subtrial" } $buttonsubback = @{ "text" = "Back"; callback_data = "back" } # 将前两个按钮作为第一行,Back单独作为第二行 $buttonRows = @( @($buttonsubcheck, $buttonsubtrial), # 第一行的按钮数组 @($buttonsubback) # 第二行的按钮数组 ) $buttonsubscription = @{ "inline_keyboard" = $buttonRows } | ConvertTo-Json -Depth 5
关键修改点:
- 把按钮按行分组为独立的子数组:
@($buttonsubcheck, $buttonsubtrial)对应第一行,@($buttonsubback)对应第二行 - 外层的
$buttonRows数组包含这两个子数组,直接赋值给inline_keyboard字段
这样生成的JSON结构会符合Telegram API要求,按钮就会按你需要的两行显示了。
内容的提问来源于stack exchange,提问作者trlhrn
相关产品推荐
相关产品推荐

