Discord api忽略了';文件';要素

Discord api忽略了';文件';要素,discord,Discord,我在python中使用请求上传文件时遇到问题 非工作代码: import requests url = 'https://discord.com/api/v9/channels/XXXXX/messages' headers = { 'authorization': 'XXXXX' } data = { 'file': open('test.png', 'rb') } r = requests.post(url=url, headers=headers, data=dat

我在python中使用请求上传文件时遇到问题

非工作代码:

import requests

url = 'https://discord.com/api/v9/channels/XXXXX/messages'

headers = {
    'authorization': 'XXXXX'
}

data = {
    'file': open('test.png', 'rb')
}

r = requests.post(url=url, headers=headers, data=data)
print(r)
print(r.text)
这是我得到的答复:

<Response [400]>
{"message": "Cannot send an empty message", "code": 50006}
<Response [200]>
{"id": "XXXXX", "type": 0, "content": "Whoas", "channel_id": "XXXXX", "author": {"id": "XXXXX", "username": "XXXXX", "avatar": "XXXXX", "discriminator": "2885", "public_flags": 0}, "attachments": [], "embeds": [], "mentions": [], "mention_roles": [], "pinned": false, "mention_everyone": false, "tts": false, "timestamp": "2021-05-22T09:08:47.061000+00:00", "edited_timestamp": null, "flags": 0, "components": [], "referenced_message": null}
它现在至少会发送消息,但没有文件。 以下是我得到的答复:

<Response [400]>
{"message": "Cannot send an empty message", "code": 50006}
<Response [200]>
{"id": "XXXXX", "type": 0, "content": "Whoas", "channel_id": "XXXXX", "author": {"id": "XXXXX", "username": "XXXXX", "avatar": "XXXXX", "discriminator": "2885", "public_flags": 0}, "attachments": [], "embeds": [], "mentions": [], "mention_roles": [], "pinned": false, "mention_everyone": false, "tts": false, "timestamp": "2021-05-22T09:08:47.061000+00:00", "edited_timestamp": null, "flags": 0, "components": [], "referenced_message": null}

{“id”:“XXXXX”,“type”:0,“content”:“Whoas”,“channel_id”:“XXXXX”,“author”:“id”:“XXXXX”,“username”:“XXXXX”,“avatar”:“XXXXX”,“discriminator”:“2885”,“public_flags”:0},“附件”:[],“嵌入”:[],“提及”:[],“提及角色”:[],“pinted”:false,“提及所有人”:false,“tts”:false,“时间戳”:“2021-05-22T09:08:47.061000+00:00”,“编辑的_时间戳”:null,“标志”:0,“组件”:[],“引用的_消息”:null}”
我很可能只是不理解discordapi文档(),不幸的是,它没有详细介绍如何上传文件

我已经尝试将discord.py模块与
discord.File('test.png')
一起使用,但是这个方法没有返回我需要的上传文件的链接


如果有人知道如何让它工作,那将非常感谢!

从我这里可以告诉你的……你正在使用API调用来操作一个机器人。事实上,这是一个非常复杂的过程,这就是为什么我们有库,如
discord.py
来简化一切。如果你想创建一个机器人,你应该y查看他们的。

我确实在
discord.py
中编程了一个机器人,但我遇到了本地文件操作的障碍,我想拍摄一个网站的屏幕截图,(我确实有一个工作代码,它返回一个指向图片的链接,仅在24小时内有效),所以我想把它下载到一个临时文件test.png或其他什么,然后上传到discord,然后我会使用
discord.embed.set_image(url={上传图像的链接})
至少就我所知,没有办法上传带有
discord.py的文件并获得链接。我想避免使用第三方托管服务。谢谢你的帮助,我明白了,所以你可以使用一个小技巧将你的图像文件转换成一个可用于嵌入的有效URL。你需要有一个单独的频道bot位于(最好是一个没有人会看到的私有测试服务器)中。您可以让bot发送一条带有附件()的消息。然后,您可以获取该消息的附件(),并获取不一致的URL()。哦,您是对的,正在工作,非常感谢您!很高兴能够提供帮助!