如何使用Telegram bot API请求用户的实时位置?

时间:2018-06-02 15:06:48

标签: node.js telegram telegram-bot telegraf

我可以使用Telegraf框架请求用户的一次性位置:

bot.start(ctx =>
    const keyboard = Extra.markup(markup =>
        markup
        .resize()
        .keyboard([
            markup.contactRequestButton('Give phone number'),
            markup.locationRequestButton('Give location')
        ])
    )

    ctx.replyWithMarkdown('a message to user', keyboard)
)

有没有办法请求实时位置?

1 个答案:

答案 0 :(得分:0)

我希望它有所帮助:

bot.onText(/^\/place_order/, function (msg, match) {
var option = {
    "parse_mode": "Markdown",
    "reply_markup": {
        "one_time_keyboard": true,
        "keyboard": [[{
            text: "My phone number",
            request_contact: true
        }], ["Cancel"]]
    }
};
bot.sendMessage(msg.chat.id, "How can we contact you?", option).then(() => {
    bot.once("contact",(msg)=>{
        var option = {
            "parse_mode": "Markdown",
            "reply_markup": {
                "one_time_keyboard": true,
                "keyboard": [[{
                    text: "My location",
                    request_location: true
                }], ["Cancel"]]
            }
        };
        bot.sendMessage(msg.chat.id,
                        util.format('Thank you %s with phone %s! And where are you?', msg.contact.first_name, msg.contact.phone_number),
                        option)
        .then(() => {
            bot.once("location",(msg)=>{
                bot.sendMessage(msg.chat.id, "We will deliver your order to " + [msg.location.longitude,msg.location.latitude].join(";"));
            })
        })
    })
})