TelegramBot:标记键盘中的位置选择器按钮,有可能吗?

时间:2015-12-23 12:01:29

标签: telegram telegram-bot

基本上,在我的机器人中,我想发送用户,一个包含一个按钮“/ picklocation”的reply_markup键盘,一个位置选择器应该弹出(默认电报位置选择器),我想从用户收集位置。这可能吗?

3 个答案:

答案 0 :(得分:1)

不幸的是,我认为这是不可能的。

根据ReplyKeyboardMarkup文档,键盘规范是"数组字符串数组",相当于按钮行。当按钮被选项卡时,其文本将作为文本消息发送到机器人。我没有看到任何方法可以触发位置选择器的打开。

答案 1 :(得分:0)

我自己解决了我的问题, 您无法从标记键盘触发位置选择器。 你可以做的是,在你的自定义键盘上放置一个picklocation按钮,当用户点击它时,向他发送一条消息,要求从附件发送位置按钮(tellegram中的paperclip图标),你将得到他的lat,长。< / p>

现在,电报bot api只支持unicode。因此,如果您想向用户发送表情符号,请使用其UTF-8字符串。

$ hourglass =“\ xE2 \ x8C \ x9B”

在键盘按钮上,您可以轻松使用,

    $Markup = array(
    'keyboard' => 
         array($hourglass."Reschedule")
   ,'resize_keyboard' => True,'one_time_keyboard' => True
);

同样,您也可以在聊天消息中发送用户的表情符号。

答案 2 :(得分:0)

您可以通过添加另一个数组而不是以 text request_location 为键的按钮文本来创建在电报中询问用户位置的按钮。

这是一段这样的php代码:

        $keyboard = array(
                     array(array("text"=>"Button 1 that sends location","request_location"=>true)),
                      array("Button 2"),
                      array("Button 3","Button 4")
                         );

        $resp = array("keyboard" => $keyboard,
                  "resize_keyboard" => true,
                  "one_time_keyboard" => false
                 );
        $reply = json_encode($resp);

这是上面代码的结果:

enter image description here