Python Telegram bot получить файл

Я загружаю файлы с помощью бота Telegram, и мой текущий код выглядит так:

И когда я это сделаю:

file.download()

Он загружает файл в текущий каталог, но я хочу загрузить все файлы в папке. Я поискал здесь документацию: https: // python- telegram-bot.readthedocs.io/en/stable/telegram.file.html, и действительно, я могу установить собственный путь для загрузки файлов в этой папке. Однако, когда я использую свой текущий код, я получаю ошибку разрешения:

with open(filename, ‘wb’) as fobj: PermissionError: [Errno 13] Permission denied: ‘C:/Users/User/Desktop/python/projects/Telegram-Database/files’

И я не знаю почему. Я попытался заново создать папку и перезапустить программу, но всегда получаю одну и ту же ошибку. Я искал эту конкретную ошибку в боте Telegram, но ничего не обнаружилось. Не могли бы вы помочь?

Источник: question-it.com

СКАЧАТЬ ФОТО ► Телеграм бот сохранение фото на сервере

Как я могу получить файл в python-telegram-bot

У меня проблема с сообщениями файлов в боте телеграммы python. как я могу получить файл и прочитать этот файл? Или сохраните.

user13601083 08 июн ’20 в 04:29 2020-06-08 04:29
2020-06-08 04:29

2 ответа

  • Зарегистрируйте обработчик, который слушает Document
  • получить File объект из обновления (внутри слушателя, использующего get_file )
  • тогда просто позвони .download() скачать документ

Вот пример кода, с которого можно начать:

user11984670 08 июн ’20 в 10:59 2020-06-08 10:59
2020-06-08 10:59

Я установил своего телеграмм-бота в pythonanywhere с помощью webhook.

Кроме того, я использую на своем компьютере программу py Programm, которая регулярно записывает некоторые обновления в файл .txt.

Пользователь должен иметь возможность отправить команду типа /update боту телеграммы, и бот должен проанализировать эту информацию в моем локально сохраненном файле .txt и ответить со значением файла.

Еще по теме:  Как создать свой Телеграмм канал с телефона

Я могу отправлять команды, которые возвращают простые сообщения, когда я пишу боту Telegram. Но можно ли также подключить бота на pythonanywhere к моему локально запущенному приложению, чтобы он отвечал, как указано выше?

Источник: stackru.com

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для экспертов
  • » telegram bot

#1 Июль 12, 2021 13:44:43

telegram bot

Добрый день.
Пишу бот отправка сообщение на почту с вложением.
Могу из бота сохранить вложение локально и потом сохраненные файлы отправить вложением на почту.
Но как миновать фазу сохранить вложения перед отправкой на почту локально, а сразу, получив из бота ссылку на файл бота типа ( http://api.telegram.org/file/bot/ )

How to Make $1000+ a Day with a SLIPPAGE Bot (Easy ETH Arbitrage MEV Bot Tutorial with Uniswap)


отправить вложением на почту?

Для этого могу использовать yagmail или email + smtplib

#2 Июль 12, 2021 15:16:56

telegram bot

например такой код, как модифицировать.

#3 Июль 12, 2021 15:23:12

telegram bot

#4 Июль 12, 2021 15:25:54

telegram bot

Как использовать в качестве вложения почтового сообщения не файл на диске, а ссылку типа
( http://api.telegram.org/file/bot/ )
.

Отредактировано sanblchsun (Июль 12, 2021 15:26:06)

#5 Июль 12, 2021 23:54:58

telegram bot

Этот файл хранится в облаке Telegram’а.
https://core.telegram.org/bots/api#file
Ссылку ты не можешь отправлять. Во-первых, в ней секрет находится, во-вторых, она действует временно.
Для отправки файла его надо скачать сначала.

Так что бот на хостинге должен скачать файл на хостинг, потом послать этот файл по почте, а потом стереть файл с хостинга.

#6 Июль 13, 2021 12:34:16

telegram bot

py.user.next

Добрый день, про секретный токен я в курсе и если я передаю ссылку в рамках своего приложения, то какая проблема? Это обычная ссылка и я конечно не планирую ее передавать в теле письма,

Просто хочу вместо этого примера, где файл считывается с диска хостинга:

try: with open(file_to_attach, «rb») as fh: data = fh.read()

Еще по теме:  Как увеличить охваты в Телеграмме

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

#7 Июль 13, 2021 18:53:29

telegram bot

sanblchsun
Но как миновать фазу сохранить вложения перед отправкой на почту локально, а сразу, получив из бота ссылку на файл бота типа ( http://api.telegram.org/file/bot/ )

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

#8 Июль 14, 2021 01:27:46

telegram bot

sanblchsun
Это обычная ссылка и я конечно не планирую ее передавать в теле письма

По-моему, ты даже не понимаешь, что такое письмо. Нет никакой разницы, где ты передаёшь ссылку, в теле письма или во вложении к письму. Она одинаково видна и там и там, потому что письмо — это единое целое. Когда письмо читается программным клиентом, оно берётся как единое целое и по знакам раскладывается на части, чтобы просто красиво смотреться.

Так появляются поля “от кого”, “кому”, “тема” и другие, есть тело письма, и отдельно идут вложения. При этом оно как было целым, так и остаётся.

sanblchsun
Трудно поверить, что сие не возможно.

Думаю, это возможно, так как используется протокол HTTP, но закачивание всего файла в оперативную память может привести к тому, что её не хватит. Поэтому сначала файл нужно куда-то сохранить, скачивая его по частям, а потом уже оттуда, где он сохранён и не исчезнет в течение часа, передавать его дальше.

#9 Июль 14, 2021 16:03:30

telegram bot

py.user.next
По-моему, ты даже не понимаешь, что такое письмо. Нет никакой разницы, где ты передаёшь ссылку, в теле письма или во вложении к письму. Она одинаково видна и там и там, потому что письмо — это единое целое. Когда письмо читается программным клиентом, оно берётся как единое целое и по знакам раскладывается на части, чтобы просто красиво смотреться.

Так появляются поля “от кого”, “кому”, “тема” и другие, есть тело письма, и отдельно идут вложения. При этом оно как было целым, так и остаётся.

Еще по теме:  Где хранятся голосовые из Телеграмма на Андроид

Ты даже не понял, что я спрашивал. Это оставим.

py.user.next
Думаю, это возможно, так как используется протокол HTTP, но закачивание всего файла в оперативную память может привести к тому, что её не хватит. Поэтому сначала файл нужно куда-то сохранить, скачивая его по частям, а потом уже оттуда, где он сохранён и не исчезнет в течение часа, передавать его дальше.

А это интересно!
Какая разница, как я буду передавать файл-вложение в почту скачивая с диска хоста или с HTTP/сылки. Ведь тут не идет о построчном скачивании, а в данном случае получаешь файл полностью и передаешь его на почтовый сервер. И в любом случае используется объем оперативной памяти одинаково. Как думаешь?

Отредактировано sanblchsun (Июль 14, 2021 16:11:49)

#10 Июль 15, 2021 03:28:37

telegram bot

sanblchsun
Какая разница, как я буду передавать файл-вложение в почту скачивая с диска хоста или с HTTP/сылки.

Ещё раз тебе пишу: 1) в хостинговой ссылке нет никакого токена для управления ботом (вплоть до стирания этого бота); 2) хостинговый файл никуда не денется сам по себе, когда там пройдёт час, пять часов, неделя.

Ты просто файл берёшь с Telegram’а и отсоединяешь его от Telegram’овских правил хранения и передачи файла. Там эти правила зависят от того, сколько пользователей у Telegram’а и сколько пользователей там одновременно что-то качают. Поэтому он и ограничения вводит.

sanblchsun
Ведь тут не идет о построчном скачивании, а в данном случае получаешь файл полностью и передаешь его на почтовый сервер.

Он может не поместиться в памяти, если он на несколько гигабайт, например. Также сетевое соединение может быть разорвано и файл нужно будет докачивать, а не качать заново. Telegram не будет тебя обслуживать. Он подождёт немножко и скинет тебя нафиг. Если ты не докачал там что-то, ему пофигу.

Источник: python.su

Рейтинг
( Пока оценок нет )
Загрузка ...