Как отправить локальную фотографию с телеграммой HTTP API в python? - PullRequest
0 голосов
/ 10 ноября 2019

поэтому я получил этот класс:

import os #for getting the directory location


class telegramBot(object):
    def __init__(self, token = telegram_token, chat_id = telegram_chat_id):
        self.token = token
        self.chat_id = chat_id
        self.base_url = "https://api.telegram.org/bot{}/".format(token)

, который содержит много методов, таких как sendMessage, replyToMessage и т. Д.

Я хочу создать метод, который отправляет изображение из локальной библиотекина мой канал телеграммы через моего бота.

Я ищу что-то, что будет выглядеть так:

     def sendImage(self, chat_id, image_path, message)
         url = self.base_url + "sendPhoto?chat_id={}&image_path={}&text={}".format(chat_id, image_path, message)
         response = requests.post(url)
         return response

Но ничего не работает, и я не могу найтиответы в Интернете или на странице API Telegram Кто-нибудь сделал это или знает, как это сделать правильно? Есть ли лучший способ сделать это?

спасибо

1 Ответ

0 голосов
/ 11 ноября 2019

Смотрите здесь , это многое объясняет при отправке файлов через Telegram Bot API .

В Python вы можете использовать это для загрузки и отправки фотографии вконкретный чат:

import requests

token = "your bot token"
chat_id = 1234567  # chat id
file = "photo.jpg"

url = f"https://api.telegram.org/bot{token}/sendPhoto"
files = {}
files["photo"] = open(file, "rb")
requests.get(url, params={"chat_id": chat_id}, files=files)

Мой личный совет: изучите и используйте библиотеку , не изобретайте велосипед.

...