我需要澄清有关发送文件的 TelegramBotAPI 部分:https://core.telegram.org/bots/api#inputmediaphoto
更具体地说,我正在尝试使用 python 并请求执行 editMessageMedia
import requests
TOKEN=my_token
params = {
'chat_id': my_chat_id,
'message_id': my_message_id,
'media': {
'type': 'photo',
'media': 'attach://<file_attach_name>'
}
}
with open(my_photo_path,'rb') as f:
files={"file_attach_name":f.read()}
response = requests.post(f'https://api.telegram.org/bot{TOKEN}/editMessageMedia', params=params, files=files)
print(response.json())
但我得到的只是:
{
'ok': False,
'error_code': 400,
'description': "Bad Request: can't parse input media JSON object"
}
在来这里之前我已经尝试了多种变化。
最后,我认为这归结于我不理解 Telegram 团队在文档中所说的“attach://
正确的代码是:
import json
import requests
TOKEN=my_token
params = {
'chat_id': my_chat_id,
'message_id': my_message_id,
'media': json.dumps({
'type': 'photo',
'media': 'attach://file_attach_name'
})
}
with open(my_photo_path,'rb') as f:
files={"file_attach_name":f.read()}
response = requests.post(f'https://api.telegram.org/bot{TOKEN}/editMessageMedia', params=params, files=files)
print(response.json())