如何在 Telegram Bot API 上的 "KeyboardButton" 对象中使用 "request_contact" 和 "request_location" 字段

How to use "request_contact" and "request_location" fields in "KeyboardButton" Object on Telegram Bot API

我想尝试使用电报机器人 API 获取用户 phone。我找到了一个方法:https://core.telegram.org/bots/api#keyboardbutton

我试过了还是没解决,这是我的代码:

        $replyMarkup3 =array(
                            'keyboard' => array(
                            array('text'=>'test'),

                            'request_contact'=>true,
                            'request_location'=>true,
                                ),
                            'resize_keyboard'=>true,
                            'one_time_keyboard'=>true,

                                );
        $encodedMarkup = json_encode($replyMarkup3);
        $data =    $this->tele->sendMessage($this->user_id2,$content,$parse_mode=null, true, null, $encodedMarkup);
        print_r($data); die();

正如Telegram Doc所说:"Optional fields are mutually exclusive."这意味着你只能使用request_contact字段或request_location。你不能同时使用它们。

此外,keyboard 必须是 KeyboardButton 对象数组的数组。 这是一个工作示例 replyMarkup 您可以改用:

$replyMarkup3 =[
    'keyboard' =>[ [ [
        'text'=>'test',
        'request_contact'=>true,
    ]]],
    'resize_keyboard'=>true,
    'one_time_keyboard'=>true,
];