Telegram 自动发布机器人
要实现一个 Telegram 自动发布机器人,每天晚上1-2点之间随机时间发送固定文字内容和当天 USDT 的实时汇率,您可以使用 Python 和 Telegram Bot API 来编写这个自动化任务。下面是一个大致的实现思路:步骤1: 创建 Telegram Bot
步骤3: 定时任务使用 Python 中的 schedule 库可以非常方便地设定定时任务。同时,您可以使用 random 模块来生成一个随机的时间点在 1-2 点之间。安装库:设定随机时间和任务的代码示例:步骤4: 运行脚本确保服务器或者计算机一直运行这个脚本,您可以使用 nohup 或者类似工具保持它在后台持续运行。这样,您的机器人每天会在 1-2 点的随机时间发送设定的消息和 USDT 汇率。
- 在 Telegram 中找到 BotFather,使用 /start 命令开始创建机器人。使用 /newbot 命令为您的机器人取一个名字和用户名,然后您会获得一个 Bot Token,类似于 123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11。这个 Token 将用于您的代码中来控制机器人。
- [color=var(--color-accent-fg)]CoinGecko API[color=var(--color-accent-fg)]Binance API
- import requestsdef get_usdt_cny_rate(): url = 'https://api.coingecko.com/api/v3/simple/price?ids=tether&vs_currencies=cny' response = requests.get(url) data = response.json() return data['tether']['cny']
- pip install schedule
- import scheduleimport randomimport timeimport requestsfrom datetime import datetimefrom telegram import Bot# 初始化 Telegram Botbot_token = '您的 Telegram Bot Token'bot = Bot(token=bot_token)chat_id = '您的 Chat ID' # 您要发送消息的聊天ID# 获取 USDT 实时汇率def get_usdt_cny_rate(): url = 'https://api.coingecko.com/api/v3/simple/price?ids=tether&vs_currencies=cny' response = requests.get(url) data = response.json() return data['tether']['cny']# 自动发送消息def send_message(): usdt_rate = get_usdt_cny_rate() message = f"固定文字内容\n当前 USDT 对 CNY 汇率:{usdt_rate}" bot.send_message(chat_id=chat_id, text=message) print(f"消息已发送: {datetime.now()}")# 设定随机时间def schedule_random_time_task(): random_minute = random.randint(0, 59) # 随机分钟 random_hour = random.choice([1, 2]) # 随机选择 1 或 2 点 schedule_time = f'{random_hour:02}:{random_minute:02}' print(f"设定的发送时间是: {schedule_time}") schedule.every().day.at(schedule_time).do(send_message)# 主循环if __name__ == "__main__": schedule_random_time_task() while True: schedule.run_pending() time.sleep(60) # 每隔 1 分钟检查一次