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