Как отправить картинку через бота в Телеграмме

Я создал бот-телеграмму, которая отправляет фотографию по запросу с URL-адреса с помощью оболочки pyTelegramBotAPI. Поэтому я попытался ввести фиктивный URL-адрес фотографии и проверить, может ли бот отправить изображение, но это не удалось из-за следующей ошибки.

telebot.apihelper.ApiException: sendPhoto failed. Returned result:

Я не уверен, в чем ошибка, но как правильно отправить фотографию с URL-адреса с помощью Telegram Bot API? Вот мой код

import telebot import time import urllib from io import BytesIO from PIL import Image TOKEN = » url=’http://scontent-b.cdninstagram.com/hphotos-xfa1/t51.2885-15/e15/10919672_584633251672188_179950734_n.jpg’ def listener(*messages): for m in messages: chatid = m.chat.id if m.content_type == ‘text’: text = m.text name = m.fromUser.first_name msgid = m.message_id if(text.startswith(‘/photo’)): img = BytesIO(urllib.request.urlopen(url).read()) tb.send_chat_action(chatid, ‘upload_photo’) tb.send_photo(chatid, img, reply_to_message_id=msgid) tb = telebot.TeleBot(TOKEN) tb.get_update() # cache exist message tb.set_update_listener(listener) #register listener tb.polling() while True: time.sleep(1)

Я не уверен, что я что-то пропустил, хотя.

Как отправить несколько фото в чат-боте телеграм / Настройка InputMediaPhoto

Zerocchi 3 Июл 2015 в 10:01

2 ответа

Лучший ответ

import telebot import time import urllib url = ‘http://scontent-b.cdninstagram.com/hphotos-xfa1/t51.2885-15/e15/10919672_584633251672188_179950734_n.jpg’ f = open(‘out.jpg’,’wb’) f.write(urllib.request.urlopen(url).read()) f.close() def listener(*messages): for m in messages: chat_id = m.chat.id if m.content_type == ‘text’: text = m.text msgid = m.message_id if text.startswith(‘/photo’): tb.send_chat_action(chat_id, ‘upload_photo’) img = open(‘out.jpg’, ‘rb’) tb.send_photo(chat_id, img, reply_to_message_id=msgid) img.close() tb = telebot.TeleBot(TOKEN) tb.set_update_listener(listener) #register listener tb.polling() while True: time.sleep(0)

Или (используя pyTelegramBotAPI 0.2.0)

Pete 3 Июл 2015 в 08:34

elif ‘Hi’ in text: reply(img=urllib2.urlopen(‘img url’).read())

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

Отправить фото C:Skriptiphoto.jpg в телеграмм с помощью бота

— это что необходимо сделать.
В телеграмм метод sendPhoto параметр photo описание ( Фото для отправки. Вы можете либо передать идентификатор file_id в виде строки для повторной отправки фотографии, которая уже находится на серверах Telegram, либо загрузить новую фотографию с помощью multipart/form-data. ) Не понимаю как это реализовать.
Ссылка на автора кода:
https://autoit-script.ru/threads/otpravka-photo-cherez-telegram-api.21521/
Использую код:

Еще по теме:  Можно ли использовать Телеграмм без номера телефона


Вызываю эту функцию:

$TelegramToken = «» $TelegramChatID = «» $FileToUploadPath = «C:Skriptiphoto.jpg» $Caption = » Telegram_SendImage($FileToUploadPath, $TelegramToken, $TelegramChatID, $Caption)

Выдает сообщение Error number = 4

Как отправить фото в телеграмме


Подскажите как исправить данную ошибку?

Сообщение автоматически объединено: 5 Авг 2020

Сообщите пожалуйста возможно ли это?
смотрел примеры Pyton, там получается такое реализовать.
Ну и придумал альтернативу для себя:
Загружать фото с диска С: в https://ru.imgbb.com/ указывая параметр удаления через 5 мин.
И пользоваться

https://api.telegram.org/bot/sendPhoto?chat_id=https://autoit-script.ru/threads/otpravit-foto-c-skripti-photo-jpg-v-telegramm-s-pomoschju-bota.27823/» target=»_blank»]autoit-script.ru[/mask_link]

Отправка изображения в Telegram

Пробовал использовать для этой задачи PowerShell, но в итоге заставить его правильно воспринимать картинку для отправки не смог. Зато подвернулся мне bash, который и справился с этой задачей.

Bash оказался очень забавным языком после PowerShell, постарался максимально в комментариях указать что и как. Но так как в bash я не силен, вышло вот так.

# узнаем где установлен bash — whereis bash
# Нужно указать сверху (!)
# при указании переменных нельзя использовать пробелы.
File = «Patch-to-image»
BotToken = «Token-Key»
chatid = «ID-Chat»
# комманда отправки изображения

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

# chmod a+x script.sh
# Запускать командой ./название-скрипта.sh

Похожие записи:

  1. WAN в Telegram
  2. Отправка документа в Telegram
  3. Отправка на email ip адрес wan
  4. Логи в Telegram

6 комментариев

Иван

Спасибо за пример. С текстовыми сообщениями проблем не возникло, а вот с фото пришлось помучиться. В итоге чуть переделал ваш код и все получилось

kanitelka

Anton

Вообще-то curl – внешняя программа. (curl.exe под виндусом). Так что и под повершелом оно должно работать аналогично.

kanitelka

Это если она стоит, то можно через переменную выйти на это. Но на тот момент меня устроило данное решение. Хотя возможно стоит попробовать в вашем направлении.

Еще по теме:  Ошибка Телеграмма слишком много попыток

Andrey

kanitelka

ANDREY Возможно для решения переноса придется писать предварительно функцию, а уже потом ее использовать.

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