一、什么是tg机器人?
telegram(以下简称tg)是一款非常流行的即时通讯软件,tg机器人就是可自动执行指定任务的程序,可以为用户提供一些便捷服务。
二、tg机器人的功能
tg机器人的功能非常强大,可以实现以下任务:
1.提醒用户定时任务
import schedule
import time
def job():
print("I'm working...")
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
使用schedule库可以很方便实现定时任务,本示例每10秒执行一次job函数。
2.天气查询
import requests
def get_weather(city_name):
url = 'http://wthrcdn.etouch.cn/weather_mini?city=' + city_name
response = requests.get(url)
weather_data = response.json()['data']
if weather_data:
city = weather_data['city']
forecast = weather_data['forecast'][0]
date = forecast['date']
high_temperature = forecast['high']
low_temperature = forecast['low']
weather = forecast['type']
tips = weather_data['ganmao']
return f"{city}<br>{date}<br>天气{weather},最高气温{high_temperature},最低气温{low_temperature}<br>温馨提示:{tips}"
else:
return '城市名输入有误'
使用requests库可以方便地向API发送请求,本示例将央视天气API中的数据解析为文字显示。
3.机器人回复电影信息
import requests
def get_movie_info(name):
url = f'https://api.douban.com/v2/movie/search?q={name}'
data = requests.get(url).json()
if data['subjects']:
movie = data['subjects'][0]
title = movie['title']
rating = movie['rating']['average']
cover_url = movie['images']['small']
summary = movie['summary']
return f"<a href="{cover_url}">封面</a><br>{title}评分:{rating}<br>{summary}"
使用requests库可以方便地向API发送请求,本示例将豆瓣电影API中的数据解析为文字和图片显示。
三、如何创建tg机器人?
创建机器人前需要在tg中找到BotFather,发送/start
并按照提示完成创建即可得到token。
使用python编程,可以使用第三方库python-telegram-bot
方便地操作机器人,安装:
pip install python-telegram-bot
四、如何使用python编写tg机器人?
接下来介绍一个简单的tg机器人,实现发送文本消息、图片消息和回应命令等基本功能。
import telegram
from telegram.ext import CommandHandler, MessageHandler, Filters, Updater
def start(update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="欢迎使用机器人,发送/help获取帮助")
def help(update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="/start - 启动机器人<br>/help - 帮助信息<br>/pic - 发送图片")
def pic(update, context):
context.bot.send_photo(chat_id=update.effective_chat.id, photo=open('image.jpg', 'rb'))
def text(update, context):
text = update.message.text
if text.startswith('/'):
return
context.bot.send_message(chat_id=update.effective_chat.id, text=f"您发送了{text}")
def main():
updater = Updater(token='XXXXXXXXXXXXXXXXXXXXXXXXXXX', use_context=True)
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
dp.add_handler(CommandHandler("help", help))
dp.add_handler(CommandHandler("pic", pic))
dp.add_handler(MessageHandler(Filters.text & ~Filters.command, text))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
1.创建机器人
从BotFather那得到token并创建机器人,并且将token添加到代码中。
2.调用telegram API
导入telegram库,使用Upader实例,Dispatcher添加CommandHandler和MessageHandler,根据不同的command和text发送不同的内容。
3.运行程序
使用start_polling()
暂时启动机器人,使用idle()
使机器人保持运行。
五、tg机器人的作用和未来
tg机器人可以帮助我们实现很多便捷的服务,比如提醒、查询、推送等等,未来可能会有更多人性化的功能加入进来,可以为我们生活和工作提供更多的帮助。