【问题标题】:Telegram bot keyboard电报机器人键盘
【发布时间】:2018-03-23 12:14:36
【问题描述】:

我用 laravel 创建了一个电报机器人 keaboard。有一部分代码。

$available_buttons =ReportToAbonent::select("report_id")
    ->join("telegram.reports", "report_to_abonent.report_id", "=", "reports.id")
    ->where("abonent_id", "=", $abonent[0]->id)
    ->where("active","=","1")
    ->get();

$keyboard = array();
foreach ($available_buttons as $value)
{
    $keyboard[] = array($value->report_id);
}

$reply_markup = \Telegram::replyKeyboardMarkup([
    'keyboard' => $keyboard,
    'resize_keyboard' => true,
    'one_time_keyboard' => false
]);

如果我打印

$keyboard`, its structure looks like if `$keyboard = [
            ['7', '8', '9'],
            ['4', '5', '6'],
            ['1', '2', '3'],
            ['0']
        ];

但在第一种情况下,电报客户端中没有键盘。在第二种情况下,它存在。我能做错什么。

【问题讨论】:

    标签: laravel telegram-bot


    【解决方案1】:

    您的内联键盘格式错误,请查看API reference

    你可以参考这个示例请求:

    仅包含一个按钮:(参数和响应)

    包含 2x3 按钮:

    【讨论】:

    • 您好,您的屏幕截图看起来很大。你能让它们更整洁一点吗?
    • @mymedia 好的,我只添加了一个按钮实例
    【解决方案2】:

    这是每个键盘的两个示例:

    普通键盘:

      const opts = {
        reply_markup: JSON.stringify({
          keyboard: [
            ['Normal'],
          ],
          resize_keyboard: true,
          one_time_keyboard: true,
        }),
      };
    

    内嵌键盘:

      const inlineopts = {
        reply_markup: {
          inline_keyboard: [
            [{
              text: 'Yahoo',
              url: 'www.yahoo.com',
            }],
            [{
              text: 'Google',
              url: 'www.google.com',
            }],
          ],
        },
      };
    

    【讨论】:

      猜你喜欢
      • 2016-03-22
      • 2020-10-08
      • 1970-01-01
      • 2018-09-25
      • 2017-08-01
      • 2022-10-05
      • 2016-10-22
      • 2017-12-10
      • 2017-04-11
      相关资源
      最近更新 更多