You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现Discord机器人添加用户为好友并接受好友请求?

Discord机器人添加好友与接受好友请求指南

嘿,我来帮你搞定这两个Discord机器人开发的问题!先给你理清楚核心限制和解决办法:

一、机器人主动加好友的限制

首先得明确:Discord官方API不允许机器人主动发起好友请求——这是平台为了防止垃圾机器人滥用设置的规则。所以机器人没法主动去加用户为好友,只能等用户先给机器人发好友请求,再由机器人接受。

二、让机器人自动接受好友请求的实现

下面用主流的discord.py库(v2.x版本)举个例子,实现监听并自动接受好友请求:

代码示例

import discord
from discord.ext import commands

# 必须开启对应的intents才能监听好友请求事件
intents = discord.Intents.default()
intents.members = True  # 关键:开启成员意图
intents.presences = True

bot = commands.Bot(command_prefix="!", intents=intents)

@bot.event
async def on_raw_friend_request(payload):
    try:
        # 获取请求对象并接受
        friend_request = await bot.fetch_friend_request(payload.request_id)
        await friend_request.accept()
        # 获取请求用户信息并打印日志
        requester = await bot.fetch_user(payload.user_id)
        print(f"已接受 {requester.name}#{requester.discriminator} 的好友请求")
    except discord.Forbidden:
        print("权限不足,无法接受好友请求")
    except Exception as e:
        print(f"处理好友请求时出错:{str(e)}")

# 启动机器人
bot.run("你的机器人TOKEN")

关键注意点

  • 去Discord开发者门户的机器人设置里,开启Server Members IntentPresence Intent,不然机器人监听不到好友请求事件。
  • 如果你的机器人还没经过验证,只要规模不大(服务器数<100),开启这些intents是没问题的。

三、好友通过后添加到群聊DM

当机器人和用户成为好友后,就可以创建群聊DM或者把用户加入已有的群DM了,代码示例如下:

# 示例1:创建新的群聊DM并添加用户
async def create_group_dm_with_user(user):
    group_dm = await bot.create_group_dm([user])
    await group_dm.send("欢迎加入群聊DM!")

# 示例2:将用户加入已有的群聊DM(假设你已经有dm_channel对象)
async def add_user_to_group_dm(dm_channel, user):
    try:
        await dm_channel.add_recipient(user)
        print(f"已将 {user.name} 添加到群聊DM")
    except discord.Forbidden:
        print("无法添加用户,可能不是好友或者权限不足")

这样就能解决你说的“无法添加非好友到群聊DM”的问题啦!

内容的提问来源于stack exchange,提问作者tristan360

火山引擎 最新活动