2016-04-21 406 views
4

我只是實現一個簡單的機器人誰應該發送一些照片和視頻到我的chat_id。 好,我使用的蟒蛇,這是腳本如何在電報機器人上發送照片

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) 

在行bot.sendphoto我會插入路徑和我的形象的chat_id但沒有任何反應。

我在哪裏錯了?

感謝

+0

你能發佈到'sendPhoto確切的調用()' ?並且請修改您的發佈代碼中的縮進。 –

+0

如果您告訴您的請求有「電報迴應」,它可能會非常有用 –

回答

0

您需要將2個PARAMS

bot.sendPhoto(chat_id, 'URL') 
0

sendPhoto至少需要兩個參數;第一個是目標chat_id,併爲第二個照片你有三種選擇:

  1. file_id如果照片已上傳到服務器的電報(推薦使用,因爲你不需要重新上傳)。
  2. 如果照片上傳到別的地方,通過完整的http url和電報將下載它(最大照片大小爲5MB atm)。
  3. 使用multipart/form-data發佈文件,就像你想通過瀏覽器上傳它(這種方式10MB的最大照片大小)。
1

我已經試過也使用Python的請求發送。也許這是遲到的回答,但在這裏,離開這個給別人喜歡我..也許它會來用.. 我subprocess 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