发送照片时url出现此错误错误文件identifier/HTTPURL指定

When send photo url this error appear wrong file identifier/HTTP URL specified

为了提供一个简单的案例来分析不同于其他现有问题的问题,我带来了一个真实的 URL,其中包含一个所有人都可以公开访问的图像,并且我在其他几个方面测试了使用它:

import requests
import json

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36"
    }

def send_photo(id_chat,bot_token,text_msg,file_photo):
    address = f'https://api.telegram.org/bot{bot_token}/sendPhoto'
    data = {"chat_id": id_chat, "photo": file_photo, "caption": text_msg}
    response = requests.post(address, data=data, headers=headers)
    print(json.loads(response.text))

send_photo('AAA', 'BBB', 'test', 'https://redecanais.to/imgs-videos/Series/Anos-Luz%201.jpg')

传递的错误是:

{'ok': False, 'error_code': 400, 'description': 'Bad Request: wrong file identifier/HTTP URL specified'}

我应该如何继续使这个 URL 作为一个值工作?

注意:我知道下载照片并将其作为文件发送是一种选择,但我想了解错误发生的原因以及我应该如何直接使用 URL 继续。

如果您想查看文档:
https://core.telegram.org/bots/api#sendphoto

如果您尝试传递照片 url,Telegram 服务器应该可以访问 url。 显然,如果没有正确的 headers,我们会收到拒绝访问错误页面。

因此,您应该将图片下载到本地并将文件上传为 multipart/form-data