基本上,在我的机器人中,我想发送用户,一个包含一个按钮“/ picklocation”的reply_markup键盘,一个位置选择器应该弹出(默认电报位置选择器),我想从用户收集位置。这可能吗?
答案 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);
这是上面代码的结果: