[英]How to get photos using pyTelegramBotAPI?
我正在尝试从 Telegram 机器人中实现此逻辑(我使用客户端的桌面版本):
我的代码是:
import telebot
bot_token = '1279****77:AAHJDPFJ************KJfLbiI'
bot = telebot.TeleBot(bot_token, parse_mode='html')
photo_list = []
@bot.message_handler(commands=['start'])
def send_welcome(message):
send = bot.send_message(message.from_user.id, 'Send your pics...')
bot.register_next_step_handler(send, get_user_pics)
return
@bot.message_handler(content_types=['photo'])
def get_user_pics(message):
if message.photo[-1].file_id not in photo_list:
photo_list.append(message.photo[-1].file_id)
if len(photo_list) == 1:
send = bot.send_message(message.from_user.id, "Photos received...")
bot.register_next_step_handler(send, process_messages())
return
def process_messages():
print(photo_list)
return
bot.polling()
现在,该逻辑仅在用户发送带有分组的照片时才有效。 如果没有分组发送(~10张照片),那么大约在第4张照片之后,机器人写道它成功拍摄了照片,没有别的......那么我如何实现所需的逻辑,无论照片是否分组?
尝试做这样的事情:
import telebot
bot_token = '1279****77:AAHJDPFJ************KJfLbiI'
bot = telebot.TeleBot(bot_token, parse_mode='html')
photo_list = []
@bot.message_handler(commands=['start'])
def send_welcome(message):
send = bot.send_message(message.from_user.id, 'Send your pics...')
bot.register_next_step_handler(send, get_user_pics)
return
@bot.message_handler(content_types=['photo'])
def get_user_pics(message):
if message.text == '/done':
process_messages()
return
elif message.photo[-1].file_id not in photo_list:
photo_list.append(message.photo[-1].file_id)
send = bot.send_message(message.from_user.id, "Send another photo or click /done")
bot.register_next_step_handler(send, get_user_pics)
return
def process_messages():
print(photo_list)
return
bot.polling()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.