2016-04-21 8 views
4

Ich bin nur eine einfache Bot implementieren, die einige Fotos und Videos an meine chat_id senden sollte. Nun, ich bin mit Python, dann ist dies das SkriptSo senden Sie ein Foto auf Telegramm Bot

import sys 
import time 
import random 
import datetime 
import telepot 

def handle(msg): 
chat_id = msg['chat']['id'] 
command = msg['text'] 

print 'Got command: %s' % command 

if command == 'command1': 
    bot.sendMessage(chat_id, *******) 
elif command == 'command2': 
    bot.sendMessage(chat_id, ******) 
elif command == 'photo': 
    bot.sendPhoto(...) 

bot = telepot.Bot('*** INSERT TOKEN ***') 
bot.message_loop(handle) 
print 'I am listening ...' 

while 1: 
    time.sleep(10) 

In der Zeile bot.sendphoto ich den Weg legen würde und die chat_id mein Bild, aber nichts passiert.

Wo liege ich falsch?

dank

+0

Könnten Sie den genauen Aufruf 'sendPhoto Post()' ? Und korrigieren Sie bitte den Einzug in Ihrem geposteten Code. –

+0

es kann so hilfreich sein, wenn Sie über die 'Telegrammantwort' zu Ihrer Anfrage erzählen –

Antwort

0

Sie benötigen 2 params bei

bot.sendPhoto(chat_id, 'URL') 
0

sendPhoto erfordert mindestens zwei Parameter zu übergeben; erste ist Ziel chat_id, und für die zweite ein Foto Sie haben drei Möglichkeiten:

  1. Pass file_id wenn das Foto bereits Server hochgeladen wird Telegramm (empfohlen, weil Sie es nicht erneut hochladen müssen).
  2. Wenn das Foto woanders hochgeladen wird, übergeben Sie die vollständige http URL und Telegramm wird es herunterladen (max Fotogröße ist 5 MB atm).
  3. Veröffentlichen Sie die Datei mit multipart/form-data, wie Sie es über einen Browser hochladen möchten (10MB max Fotogröße auf diese Weise).
1

Ich habe versucht, auch von Python mit Anfragen senden. Vielleicht zu verwenden, es ist spät Antwort, aber hier diese für andere wie mich verlassen .. vielleicht wird es kommen .. ich mit subprocess wie so succeded:

def send_image(botToken, imageFile, chat_id): 
     command = 'curl -s -X POST https://api.telegram.org/bot' + botToken + '/sendPhoto -F chat_id=' + chat_id + " -F [email protected]" + imageFile 
     subprocess.call(command.split(' ')) 
     return 
Verwandte Themen