Python 与 Discord API 入门指南

作者:API传播员 · 2025-10-21 · 阅读时间:4分钟

是否想过在 Discord 上实现任务自动化,或者通过 PythonDiscord API 进行交互。通过本教程,您将学会如何发送消息、读取消息、更新消息,甚至删除消息。


如何在 Python 中使用 Discord API

要使用 Discord API,首先需要在您的 Discord 帐户上创建一个服务器。接着,按照以下步骤启用开发者模式:

  1. 打开 Discord 应用,点击左下角的设置按钮。
  2. 进入 高级 设置,启用 开发者模式

获取令牌和通道 ID

在使用 Discord API 之前,您需要获取以下两个关键信息:

  • 令牌:用于验证 API 请求。
  • 通道 ID:指定目标消息所在的通道。

获取通道 ID

右键单击任何通道(例如 #general),然后选择 复制通道 ID

获取令牌

  1. 在浏览器中打开 Discord,按下 Ctrl+Shift+I 打开开发者工具。
  2. 选择 应用程序 -> 本地存储 -> 点击 https://discord.com/
  3. 在过滤器中搜索 “token”,然后复制令牌。


使用 Python 发送消息

以下是通过 Python 使用 POST 请求发送消息的代码示例:

import requests

def message_post(token, channel_id, message):
    url = f"https://discord.com/api/v9/channels/{channel_id}/messages"
    headers = {"Authorization": f"Bot {token}"}
    data = {"content": message}
    response = requests.post(url, headers=headers, json=data)
    if response.status_code == 200:
        print("消息发送成功")
    else:
        print("发送消息失败")
        print(response.text)# 示例
token = "YOUR_DISCORD_TOKEN"
channel_id = "YOUR_CHANNEL_ID"
message = "嘿,你好吗?"
message_post(token, channel_id, message)

运行代码后,您将看到如下输出:


使用 Python 读取消息

通过 GET 请求可以从指定通道中读取消息。以下是代码示例:

import requests

def read_message(channel_id, token):
    url = f"https://discord.com/api/v9/channels/{channel_id}/messages"
    headers = {"Authorization": f"Bot {token}"}
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        messages = response.json()
        return messages
    else:
        print("无法获取消息")
        print(response.text)
        return None# 示例
token = "YOUR_DISCORD_TOKEN"
channel_id = "YOUR_CHANNEL_ID"
messages = read_message(channel_id, token)
if messages:
    for message in messages:
        print(f"{message['content']}")

运行上述代码后,您将看到通道中的所有消息内容。


使用 Python 更新消息

要更新消息,您需要获取消息的 ID。右键单击目标消息,选择 复制消息 ID。以下是使用 PATCH 请求更新消息的代码示例

import requests

def update_message(token, channel_id, message_id, new_message):
    url = f"https://discord.com/api/v9/channels/{channel_id}/messages/{message_id}"
    headers = {"Authorization": f"Bot {token}"}
    data = {"content": new_message}
    response = requests.patch(url, headers=headers, json=data)
    if response.status_code == 200:
        print("消息已成功更新")
    else:
        print("编辑消息失败")
        print(response.text)# 示例
token = "YOUR_DISCORD_TOKEN"
channel_id = "YOUR_CHANNEL_ID"
message_id = "YOUR_MESSAGE_ID"
new_message = "嘿,此消息已使用 PATCH 请求更新。"
update_message(token, channel_id, message_id, new_message)

运行代码后,您将看到如下输出:


使用 Python 删除消息

最后,您可以通过 DELETE 请求删除指定消息。以下是代码示例:

import requests

def delete_message(token, channel_id, message_id):
    url = f"https://discord.com/api/v9/channels/{channel_id}/messages/{message_id}"
    headers = {"Authorization": f"Bot {token}"}
    response = requests.delete(url, headers=headers)
    if response.status_code == 204:
        print("消息已成功删除")
    else:
        print("删除消息失败")
        print(response.text)# 示例
token = "YOUR_DISCORD_TOKEN"
channel_id = "YOUR_CHANNEL_ID"
message_id = "YOUR_MESSAGE_ID"
delete_message(token, channel_id, message_id)

运行代码后,目标消息将被成功删除。


总结

通过本教程,您已经学习了如何使用 Python 与 Discord API 进行交互。从设置服务器和启用开发者模式,到获取令牌和通道 ID,再到发送、读取、更新和删除消息,这些操作为您实现 Discord 任务自动化提供了强大的工具。希望本教程能为您带来启发,帮助您更好地管理 Discord 社区或开发相关应用。

如果您对 Python 感兴趣,还可以尝试探索网络爬虫技术,或者学习 Python 在机器学习中的应用

原文链接: https://blog.apify.com/python-discord-api/