TypeError: send_photo() takes 1 positional argument but 3 were given

Делаю простейший бот для телеграма, который раз в три секунды отправляет рандомную фотографию из папки в канал телеграма.

Код:

import telebot
import os
import random
import time

TOKEN = ''
tb = telebot.TeleBot(TOKEN) #create a new Telegram Bot object
chat_id = '@12121201'


while True:
    photo = open(random.choice(os.listdir("D:\ph")), 'rb')
    tb.send_photo(chat_id, photo)
    time.sleep(3)

(Токен вырезан)

И получил эту ошибку при отправке фотографии:

    tb.send_photo(chat_id, photo)
TypeError: send_photo() takes 1 positional argument but 3 were given

В другом треде пишут, что эта функция еще не реализована в telebot, но у многих людей она работает, как это можно исправить?


Ответы (1 шт):

Автор решения: Violet

pyTelegramBotAPI 3.8.2

import telebot


bot = telebot.TeleBot(bot_token)

print(bot.get_me())


@bot.message_handler(commands=['start'])
def test(message):
    bot.send_photo(message.chat.id, open('files/test.JPG', 'rb'))
    bot.send_photo(message.chat.id, 'https://www.python.org/static/img/python-logo.png')


bot.polling(none_stop=True)
→ Ссылка