python - 如何获取 Telegram chat_id?
问题描述
嗨,我有一个关于 Telebot 的问题。
我正在尝试按照官方文档中的说明进行操作,但他们使用了一个名为 chat_id 的变量(我知道它是什么),我愿意知道如何检索和使用它。
奖励:如何让键盘上的键从用户那里发送消息以激活功能。更好的解释:用户按下键盘上的一个按钮并发送一个命令(例如/it_lang),然后使用命令处理函数来做某事。
文档:https ://github.com/eternnoir/pyTelegramBotAPI
import telebot
from telebot import types
from config import TOKEN, bot_is_active
bot = telebot.TeleBot(TOKEN)
if bot_is_active :
u/bot.message_handler(commands=['start'])
def choose_lang(message):
markup = types.ReplyKeyboardMarkup()
it_btn = types.KeyboardButton('IT')
en_btn = types.KeyboardButton('EN')
markup.row(it_btn)
markup.row(en_btn)
bot.send_message(chat_id, "Please choose a language:", reply_markup=markup)
bot.polling()
else:
u/bot.message_handler(commands=['start'])
def choose_lang(message):
bot.reply_to(message, "I'm sorry the bot is no available,try later")
bot.polling()
解决方案
如果我理解正确:
cid = message.chat.id
您可以获得的所有信息:
@bot.message_handler(commands=['start'])
def start(message):
print(message)
升级版:
bot = telebot.TeleBot('Token')
keyboard1 = telebot.types.ReplyKeyboardMarkup()
keyboard1.row('IT', 'ENG')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, 'Hello, i reveive /start', reply_markup=keyboard1)
@bot.message_handler(content_types=['text'])
def send_text(message):
if message.text.lower() == 'it':
bot.send_message(message.chat.id, 'Your language is IT')
<do something>
elif message.text.lower() == 'eng':
bot.send_message(message.chat.id, 'Your language is ENG')
<do something>
推荐阅读
- wordpress - 结帐字段自定义标签不起作用
- java - 打印指定文件练习 Java
- javascript - 使用 HTML CSS JS 以百分比管理装运进度条
- asp.net-core - ASP.NET Core 标识表 AspNetUsers
- javascript - 在其中定义变量的 Jest 测试函数
- shell - 似乎无法逃脱 shell 脚本中的空格
- python - 如何在 Python 中解压 .rar 文件?
- spring-boot - Spring Boot 1 和 Gradle:ClassNotFoundException SpringApplicationBuilder
- blockchain - 如何从 NEAR 协议中的私钥和/或帐户 ID 获取公钥?
- reactjs - 使用传递给组件的 ID 在 React 中打开模态