【问题标题】:How to use TYPEs in Telegram Bot API?如何在 Telegram Bot API 中使用类型?
【发布时间】:2016-09-13 06:14:05
【问题描述】:

我是 Telegram Bot 的新手。我知道如何使用 METHODs 通过 PHP 或 cURL 中的 file_get_contents 方法发送消息或其他人,但我对 TYPEs 了解不够。虽然我在 Telegram Page 中阅读过,但被误解得很深。所以我不知道如何在我的机器人中使用类型。我想为我的机器人创建一个键盘,所以我认为当我使用 cURL 时,我应该发送带有参数的 TYPE。所以我写了下面的代码:

$Params = array (
    'chat_id' => $ChatID,
    'text' => 'Hello !',
    'ReplyKeyboardMarkup' => array (
        'keyboard' =>  array(array('Hello', 'Hi'))
    )
);

当我使用 cURL 时它会向我发送消息:

$Curl = curl_init("https://api.telegram.org/bot".$APIToken."/sendMessage");
curl_setopt($Curl, CURLOPT_HEADER, true);
curl_setopt($Curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($Curl, CURLOPT_POST, 1);
curl_setopt($Curl, CURLOPT_POSTFIELDS, ($Params));
curl_setopt($Curl, CURLOPT_SSL_VERIFYPEER, false);
curl_exec($Curl);
curl_close($Curl);

但它没有显示键盘...,我的错误是什么?

【问题讨论】:

    标签: php curl telegram telegram-bot


    【解决方案1】:

    您需要添加密钥reply_markup,格式为ReplyKeyboardMarkup

    $ReplyKeyboardMarkup = array(
        "keyboard" => array(
            array("1st row left", "1st row right"), 
            array("2nd row left", "2nd row right")
        )
    );
    
    $Params = array (
        'chat_id' => $ChatID,
        'text' => 'Hello !',
        'reply_markup' => json_encode($ReplyKeyboardMarkup)
    );
    

    【讨论】:

    • 太棒了!谢谢我的朋友...,我知道ReplyKeyboard 参数,例如调整大小或...,但我不知道如何声明位置或电话的键盘...,您也可以举个例子吗?
    • 只需将按钮文本替换为键盘按钮格式的另一个数组:array("text" => "Send Location", "request_location" => true)
    猜你喜欢
    • 2020-09-15
    • 1970-01-01
    • 2019-08-07
    • 2015-12-08
    • 2022-10-20
    • 2016-02-23
    • 2017-12-25
    • 2023-03-28
    • 2018-04-07
    相关资源
    最近更新 更多