Как загрузить файл на сервер Telegram

Я пишу бота для телеграмм (на Python), который отправляет изображения. Я отправляю каждое изображение по несколько раз, и в документации рекомендуется отправлять file_id файла, который уже хранится на сервере Telegram.

Но я не могу найти никакой документации о хранении файла на сервере и получении file_id. Я могу попробовать отправить изображение (себе? Боту?) И получить его file_id, но это кажется ооочень хакерским.

Комментарии (1)

Кто-нибудь знает, как загрузить изображение с помощью VBA?

25.06.2018 22:15

Оператор pass в Python — это простая концепция, которую могут быстро освоить даже новички без опыта программирования.

Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции — это способ манипулировать массивами и играть с массивами данных. Благодаря.

Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний.

Все о массиве Dependency и его связи с useEffect.
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Пишем Telegram бота на Python + Загружаем Telegram бота на сервер(хостинг)

Хорошо, я понял . вам нужно отправить изображение один раз, но получить file_id несложно:

msg = bot.send_photo(chat_id=chat_id, photo=open(«filename», «rb»)) file_id = msg.photo[0].file_id . bot.send_photo(photo=file_id)
25.06.2018 23:58

Конечно! Вы можете отправить фото с диска или с URL. В противном случае, если вы отправите фото боту из клиента, вы получите file_id и file_path для другого размера фотографии в update.message.photo.

Тогда вы можете получить реальный файл по ссылке: https://api.telegram.org/file/bot:TOKEN:/photos/file_3.jpg Также вы можете получить массив фотографий с file_id: https://api.telegram.org/bot:TOKEN:/getFile?file_id=AAAAAA

Пример полученных данных с фото:

, , , ], ‘caption’: ‘comment_to_my_uploaded_photo’>>

Наконец, пример моего простого бота для отправки случайного изображения с URL:

#!/usr/bin/python3 from telegram.ext import Updater, Filters from telegram.ext import CommandHandler, CallbackQueryHandler, MessageHandler from telegram import InlineKeyboardButton, InlineKeyboardMarkup import requests def start(bot, update): update.message.reply_text(‘Hello! I can show an awesome images for you!’, reply_markup=main_keyboard()) def meow(bot, update): query = update.callback_query photo = requests.get(‘http://aws.random.cat/meow’).json() bot.send_photo(caption = «Meow! :)», photo=photo[‘file’], chat_id=query.message.chat_id, message_id=query.message.message_id, reply_markup=action_keyboard()) def wooff(bot, update): query = update.callback_query photo = requests.get(‘https://dog.ceo/api/breed/husky/images/random’).json() bot.send_photo(caption = «Bwoof! :)», photo=photo[‘message’], chat_id=query.message.chat_id, message_id=query.message.message_id, reply_markup=action_keyboard()) def like(bot, update): query = update.callback_query bot.send_message(text='<>Likewise!’.format(u’U0001F60A’), chat_id=query.message.chat_id, reply_markup=main_keyboard()) def great(bot, update): query = update.callback_query bot.send_message(text='<>Great!’.format(u’U0001F60B’), chat_id=query.message.chat_id, reply_markup=main_keyboard()) def main_keyboard(): keyboard = [[InlineKeyboardButton(«Get Meow», callback_data=’meow`’), InlineKeyboardButton(«Get Wooff», callback_data=’wooff’)]] return InlineKeyboardMarkup(keyboard) def action_keyboard(): keyboard = [[InlineKeyboardButton(«Like!», callback_data=’like’), InlineKeyboardButton(«Great!», callback_data=’great’)]] return InlineKeyboardMarkup(keyboard) updater = Updater(‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’) updater.dispatcher.add_handler(CommandHandler(‘start’, start)) updater.dispatcher.add_handler(CallbackQueryHandler(meow, pattern=’meow’)) updater.dispatcher.add_handler(CallbackQueryHandler(wooff, pattern=’wooff’)) updater.dispatcher.add_handler(CallbackQueryHandler(like, pattern=’like’)) updater.dispatcher.add_handler(CallbackQueryHandler(great, pattern=’great’)) updater.dispatcher.add_handler(MessageHandler(Filters.text|Filters.photo, start)) updater.start_polling()

Еще по теме:  Как изменить цвет канала в Телеграмме

Источник: reddeveloper.ru

КАК ЗАПУСТИТЬ TELEGRAM БОТА ИЛИ ПАРСЕР НА СЕРВЕРЕ

Как отправить большие файлы с URL на бота Telegram?

У меня есть файлы большого размера (в форматах MP4 и Zip ), и я хочу отправить их в мой чат боттом Telegram, я использовал следующий код:

file_get_contents(‘https://api.telegram.org/bot[[app:token]]/sendDocument?chat_id=24523586

Но он просто может отправлять файлы с небольшими размерами, менее 50 МБ! Но я знаю, что нет ограничений на размер файлов для документов, которые отправляются file_id . Вы можете увидеть эту страницу
Теперь, как я могу сделать file_id для моих файлов? Мои файлы загружаются на моем сервере, и я использую PHP.

Ali YQB 06 апр. 2017, в 16:08
Поделиться
Поделиться:
telegram-bot
php-telegram-bot

3 ответа

API Telegram bot может отправлять файлы менее чем на 20 МБ с помощью url param, вы должны искать Отправка файлов. Если вы хотите отправить файлы размером 20-50 МБ, вы должны загрузить и повторно загрузить его на сервер API Telegram bot.
Вы можете сослаться на этот простой код

$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => ‘https://api.telegram.org/bot131210513:AXXXXXX/sendDocument?caption=Hello+World true, CURLOPT_HTTPHEADER => [ ‘Content-Type: multipart/form-data’ ], CURLOPT_POST => true, CURLOPT_POSTFIELDS => [ ‘document’ => curl_file_create(‘/etc/hosts’, ‘plain/text’, ‘Hosts-file.txt’) ] ]); $data = curl_exec($curl); curl_close($curl);
Sean 09 апр. 2017, в 04:02
Поделиться

Вы можете установить pwrtelegram на свой сервер.

Затем просто переключите URL-адрес API, и вы сможете загрузить до 1,5 ГБ файлов с помощью своего бота. Это единственный возможный путь. Подробнее см. Ссылку. Кроме того, вы не можете проходить в любом случайном file_id , поскольку Telegram не отправит его.

Вы можете передать файл file_id, который ранее был загружен вашим ботом. Чтобы обойти предел, используйте метод выше. Он работает очень хорошо.

Mohammed Sohail 07 апр. 2017, в 09:21
Поделиться
спасибо за помощь 🙂 есть ли простой источник PHP для отправки файлов для PWRTelegram?
Ali YQB 08 апр. 2017, в 18:15
Mohammed Sohail 10 апр. 2017, в 07:25
На самом деле просто переключите URL-адрес APi на api.pwrtelegram.xyz и все готово

Еще по теме:  Как сделать стикеры в Телеграмме больше

Mohammed Sohail 10 апр. 2017, в 07:26
извините, я переключаю URL-адрес APi на api.pwrtelegram.xyz, но он не работает!
Ali YQB 06 май 2017, в 10:11
Показать ещё 2 комментария

Во-первых, вы должны отправить свой файл своему боту, а затем получить файл.

После этого вы можете просто использовать fileID для отправки файлов, и таким образом загрузка будет на сервере Telegram, а не на вашем. Конечно, вы можете отправлять файлы с вашего собственного сервера, но этот метод приведет к снижению скорости для вашего бота.

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

Вам не нужно делать fileID.

Все, что вам нужно, это отправить файл боту и дать боту узнать fileID и сохранить его где-нибудь в будущих передачах.

Naser.Sadeghi 06 апр. 2017, в 20:00
Поделиться

Ещё вопросы

  • 1 Нужна помощь, создав диалог с 2 NumberPickers
  • 0 Странная проблема со смещенной вершиной в jquery
  • 1 Spring data jpa + объединяет 2 таблицы
  • 0 ScrollTop, перенаправляющий на домашнюю страницу
  • 1 Как получить простой список из Android LiveData >?
  • 0 JQuery запускающее действие при загрузке страницы
  • 0 Перетащите один div снова и снова к следующему div
  • 1 Передача параметров через URL в C # ASP.net
  • 0 Проблемы с Backbone.js и Require.js
  • 0 Отображение данных из двух таблиц в Java MySQL
  • 0 Как добавить нового пользователя в Kamailio, используя PHP shell_exec?
  • 1 Как получить имя схемы для sysobjects при запросе базы данных сервера sql
  • 1 Выбор по индексу внутри выбора d3
  • 1 Repmat в Python v / s MATLAB
  • 0 функция PHP при загрузке страницы
  • 0 Как выполнить запрос, используя класс Zend_Db_Table_Abstract?
  • 1 Вход на веб-страницу из Java
  • 0 Отправлять почту всякий раз, когда журнал очищается в Magento
  • 1 Передача никогда не выполняется при остановке приложения
  • 0 карусель css thumb останавливается на 0
  • 1 unregisterReceiver (получатель) в onPause заставляет получателя не регистрироваться
  • 0 Как настроить полосу прокрутки для отображения только в одном div
  • 0 Попытка приравнять struct [array] .variable к символу, которому он соответствует из ввода / вывода [duplicate]
  • 1 умножить строковый элемент на элемент int из двух массивов Java
  • 1 Выпадающий список выбора на следующие 10 лет
  • 0 указать порядок полей в сообщении FIX, используя QuickFIX
  • 0 Использование директивы для присоединения объекта с доступом к области видимости к элементу HTML
  • 0 Невозможно отобразить php на html-странице
  • 1 Я имею IllegalArgumentException в моем бобе
  • 0 Firebase + Angularjs заказать
  • 0 как отобразить моих пользователей из firebase с помощью angularjs
  • 1 js Дата изменения 10 октября (BST) [копия]
  • 0 Динамический метатег с angularJS
  • 0 Автоматически генерировать строки с разными датами
  • 1 Angular CLI использует SystemJS?
  • 1 Соглашение об именовании свойств навигации в Entity Framework
  • 0 Как сравнить две даты?
  • 0 C ++. как читать из файла и сопоставлять с вводом
  • 0 Rails — Получить URL-адрес Paperclip с помощью SQL-запроса
  • 0 выбранный параметр не отображается в раскрывающемся списке Angularjs
  • 0 Переключить расширяемый фон при нажатии
  • 1 Разница между getNamedItem () и getAttribute ()?
  • 0 C ++ Array передается по ссылке, но как это понять?
  • 0 Все `идентификаторы` всегда из последнего объекта [дубликата]
  • 0 пространство имен против соглашения об именах
  • 1 Связывание кода начальной загрузки с файлом .aspx.cs
  • 0 Laravel пытается сохранить HTML в базе данных
  • 0 Элементы становятся размытыми в Flexslider
  • 1 оператор linq, если users.Claims содержит утверждения, равные параметрам (LINQ)
  • 0 Хранить объемные изображения в $ localStorage — Angular JS
Еще по теме:  Админ Телеграмм канала звонит

Источник: overcoder.net

UploadFile Telegram bot API

Как я могу загрузить файл через WebClient.UploadFile на сервера Telegram? И потом отправить его пользователю?

Отслеживать
задан 16 июн 2018 в 20:59
user290321 user290321

Уважаемый, ну вы серьёзно? На ruSO куча примеров отправки запросов. Лезем в документацию и смотрим по какому адресу отправлять запрос, далее смотрим метод, который отправит нам файл, видим, что он принимает InputFile. В итоге видим адрес, нужный метод и тело запроса должно быть в формате multipart/form-data . Ну и далее поиск. Я так понимаю, что это все трудно сделать?

16 июн 2018 в 21:23
Я создал вопрос, чтобы самому ответить на него
– user290321
16 июн 2018 в 22:08

Ну тогда вы вопрос грамотно составляйте, вот я зашёл и вижу загрузить файл через WebClient.UploadFile . Сразу в голове «ага, человеку не нужны сторонние плагины», а тут на тебе, ответ в виде использования плагина, а не WebClient.UploadFile из вопроса.

Источник: ru.stackoverflow.com

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