我如何在电报内的内联键盘中请求用户的位置?
How i can request the user's location in inline keyboard within telegram?
大家好,我是电报机器人编码方面的新手,我正在构建一个地理数据收集器机器人。我想使用内联键盘在按钮中检索用户的位置。只有 request_location 参数可以在键盘中使用,而不是在线键盘中。我还想为我的其中一个按钮使用回调以返回到上一个菜单,但我无法为键盘找到正确的回调查询。有人可以帮助我如何请求内联键盘中的位置吗?
//我的获取位置的按钮
bot.action("POS-PCdF", (ctx) => {
ctx.deleteMessage();
console.log(ctx.from);
bot.telegram.sendMessage(ctx.chat.id, "Can we access your location?", {
reply_markup: {
keyboard: [
[
{
text: "Access my location",
request_location: true,
callback_data: "Access_my_loc",
},
{ text: "Cancel", callback_data: "PCdF" },
],
],
},
});
});
//我想在回调中使用的菜单
bot.action("PCdF", (ctx) => {
ctx.deleteMessage();
ctx.telegram.sendMessage(
ctx.chat.id,
"Share with us the problems about *******!",
{
reply_markup: {
inline_keyboard: [
[
{ text: "Pictures", callback_data: "PIC-PCdF" },
{ text: "Location", callback_data: "POS-PCdF" },
],
[
{ text: "write to us", callback_data: "TEXT-PCdF" },
{ text: "Go back Home", callback_data: "go-back" },
],
],
},
}
);
});
提前致谢。
如 Official Telegram Bot API 中所述,InlineKeyboardMarkupButton
应恰好包含以下可选字段之一:callback_data
、login_url
、switch_inline_query
、switch_inline_query_current_chat
、callback_game
、pay
这意味着内联键盘不能有请求用户位置的按钮 AKA request_location
。
此外,没有用于 returning 到最后一个键盘(无论是 ReplyKeyboard
还是 InlineKeyboard
)的内置按钮或解决方案。您必须实现一个 return 按钮,并明确声明一个适当的 text
(callback_data
如果它是一个 InlineKeyboardButton
),这样您的代码就可以识别它并且 return最后一个键盘。
大家好,我是电报机器人编码方面的新手,我正在构建一个地理数据收集器机器人。我想使用内联键盘在按钮中检索用户的位置。只有 request_location 参数可以在键盘中使用,而不是在线键盘中。我还想为我的其中一个按钮使用回调以返回到上一个菜单,但我无法为键盘找到正确的回调查询。有人可以帮助我如何请求内联键盘中的位置吗?
//我的获取位置的按钮
bot.action("POS-PCdF", (ctx) => {
ctx.deleteMessage();
console.log(ctx.from);
bot.telegram.sendMessage(ctx.chat.id, "Can we access your location?", {
reply_markup: {
keyboard: [
[
{
text: "Access my location",
request_location: true,
callback_data: "Access_my_loc",
},
{ text: "Cancel", callback_data: "PCdF" },
],
],
},
});
});
//我想在回调中使用的菜单
bot.action("PCdF", (ctx) => {
ctx.deleteMessage();
ctx.telegram.sendMessage(
ctx.chat.id,
"Share with us the problems about *******!",
{
reply_markup: {
inline_keyboard: [
[
{ text: "Pictures", callback_data: "PIC-PCdF" },
{ text: "Location", callback_data: "POS-PCdF" },
],
[
{ text: "write to us", callback_data: "TEXT-PCdF" },
{ text: "Go back Home", callback_data: "go-back" },
],
],
},
}
);
});
提前致谢。
如 Official Telegram Bot API 中所述,InlineKeyboardMarkupButton
应恰好包含以下可选字段之一:callback_data
、login_url
、switch_inline_query
、switch_inline_query_current_chat
、callback_game
、pay
这意味着内联键盘不能有请求用户位置的按钮 AKA request_location
。
此外,没有用于 returning 到最后一个键盘(无论是 ReplyKeyboard
还是 InlineKeyboard
)的内置按钮或解决方案。您必须实现一个 return 按钮,并明确声明一个适当的 text
(callback_data
如果它是一个 InlineKeyboardButton
),这样您的代码就可以识别它并且 return最后一个键盘。