Skip to main content

Discord-2 Bot

需求​

以代码方式获取/监听其他 announcements channel 的消息

简单概括实现​

  1. follow 其他 channel 消息到自己 server 的某个 channel
  2. 给自己的 channel 添加 Bot,通过 Bot 相关的 channel API 监听/查询 channel 消息 具体实现过程

流程流转图​

具体操作过程​

开发者权限​

alt text

配置机器人​

alt text

alt text alt text

Bot Token​

alt text

GENERATED URL​

复制这个链接,然后在你的浏览器中打开它,选择你想要邀请 Bot 的服务器,并授权它

alt text

Channel ID​

alt text

代码示例​

RPC 调用​

import requests

# 你的Bot Token
bot_token = '' # 替换自己的
# 频道ID
channel_id = '' # 替换自己的

# 设置请求头部
headers = {
'Authorization': f'Bot {bot_token}'
}

# Discord API endpoint
url = f'https://discord.com/api/v9/channels/{channel_id}/messages'

# 发送GET请求
response = requests.get(url, headers=headers)

# 检查响应状态码
if response.status_code == 200:
# 解析响应内容
messages = response.json()
# print(messages)
for message in messages:
print(message['content']) # 打印消息内容
else:
print(f"Error: {response.status_code}")

RPC 调用的结果​

alt text

alt text

SDK 监听信息​

import discord

intents = discord.Intents.default()
intents.message_content = True
bot_token = '' # 替换自己的

client = discord.Client(intents=intents)

@client.event
async def on_ready():
print(f'We have logged in as {client.user}')

@client.event
async def on_message(message):
print(f'receive::: {message.channel}: {message.author}: {message.author.name}: {message.content}')
if message.author == client.user:
return

if message.content.startswith('$hello'):
await message.channel.send('Hello!')

@client.event
async def on_message_delete(message):
print(f'delete::: {message.channel}: {message.author}: {message.author.name}: {message.content}')

@client.event
async def on_message_edit(before, after):
print(f'edit::: {before.channel}: {before.author}: {before.author.name}: {before.content} -> {after.content}')

@client.event
async def on_message_bulk_delete(messages):
print(f'bulk delete::: {messages}')

@client.event
async def on_raw_message_delete(payload):
print(f'raw delete::: {payload}')


@client.event
async def on_raw_message_edit(payload):
print(f'raw edit::: {payload.data}' )


client.run(bot_token)

SDK 监听到的结果​

alt text

alt text

文档链接​

discord libraries   https://discord.com/developers/docs/topics/community-resources#libraries

discord postman https://www.postman.com/discord-api

discord channel message https://discord.com/developers/docs/resources/channel

discord sdk discord.py https://discordpy.readthedocs.io/en/latest/

discord mini Bot https://discordpy.readthedocs.io/en/latest/quickstart.html

discord rpc https://discord.com/developers/docs/resources/channel#get-channel-messages