TelegramBotAPI “attach://<file_attach_name>”的含义

问题描述 投票:0回答:1

我需要澄清有关发送文件的 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://”的含义

python-3.x python-requests telegram-bot
1个回答
0
投票

正确的代码是:

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()) 
© www.soinside.com 2019 - 2024. All rights reserved.