Ich habe einen Bot-Bot, der Foto auf Anfrage sendet von URL mit pyTelegramBotAPI Wrapper. Also habe ich versucht, eine Dummy-Foto-URL zu erstellen und zu testen, ob der Bot das Bild senden kann, aber es ist mit dem folgenden Fehler fehlgeschlagen.Senden von Fotos von URL mit Telegram Bot
telebot.apihelper.ApiException: sendPhoto failed. Returned result: <Response [400]>
Ich bin nicht sicher, was der Fehler ist, aber wie kann ich richtig ein Foto von URL-Telegramm Bietet API senden? Hier ist mein Code
import telebot
import time
import urllib
from io import BytesIO
from PIL import Image
TOKEN = '<token here>'
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)
Ich bin mir nicht sicher, ob ich etwas verpasst habe.
Also brauchen wir ganze Datei in lokalen Ordner herunterladen, bevor schließlich zu Telegramm hochladen. Gibt es eine Möglichkeit, die Bildgröße beim Herunterladen zu reduzieren, wenn ich das Skript vollständig auf meinem Computer ausführen? – Zerocchi
Ich weiß nicht, was es genau ist, was Sie versuchen zu machen, aber ich bin sicher, es gibt Möglichkeiten, Bilder mit Python zu komprimieren, nur nicht _while_ Download. Stellen Sie sicher, dass Sie das Bild von Ihrem Computer löschen, wenn Sie die Datei nicht mehr benötigen. – Pete
Mein Code hier - ich glaube, ich bin neu in Python - erfordert nicht das Bild in den lokalen Ordner herunterladen: http://StackOverflow.com/a/32441772/1097372 – Iyas