如何加入服务器?

Lax*_*nor 26 python discord discord.py

我正在尝试用python设置一个discord bot.我有一个预先存在的discord服务器,我希望机器人加入,但我很难这样做.

import discord
import asyncio
import logging

logging.basicConfig(level=logging.INFO)

client = discord.Client()

@client.event
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')
    print(client)


@client.event
async def on_message(message):
    print(message)
    if message.content.startswith('!test'):
        counter = 0
        tmp = await client.send_message(message.channel, 'Calculating messages...')
        async for log in client.logs_from(message.channel, limit=100):
            if log.author == message.author:
                counter += 1

        await client.edit_message(tmp, 'You have {} messages.'.format(counter))
    elif message.content.startswith('!sleep'):
        await asyncio.sleep(5)
        await client.send_message(message.channel, 'Done sleeping')

client.run('token')
Run Code Online (Sandbox Code Playgroud)

这基本上是GitHub页面上给出的基本discord.py脚本.但是,我似乎无法弄清楚如何让它实际加入我的服务器.将此行插入on_ready函数时:

server = await client.accept_invite('instant-invite-code')
Run Code Online (Sandbox Code Playgroud)

将"即时邀请代码"替换为我的实际即时邀请代码(我尝试了discord.gg/code和代码),我得到了

discord.errors.Forbidden: FORBIDDEN (status code: 403): Bots cannot use this endpoint
Run Code Online (Sandbox Code Playgroud)

记录确实有效; 我用我的用户名和id输出.我的机器人注册了discord API,我已经有了一个令牌.

Elt*_*han 66

我也遇到了一些麻烦.你需要做的是:

  1. 转到Discord开发者页面(如果没有,请登录).
  2. 转到要添加到频道的机器人的应用程序.
  3. 复制客户端/应用程序ID.
  4. 转到https://discordapp.com/oauth2/authorize?client_id=CLIENT_ID_GOES_HERE&scope=bot&permissions=0 <您可以在此处设置机器人的权限.权限可以在这里计算.
  5. 选择服务器并单击"授权".

您的机器人现在将成为服务器的成员,并将响应您提供的命令.防爆.!在你给出的代码中测试.

编辑:您现在可以使用权限链接(1)生成所需的完整URL.

  • 哇谢谢!这实际上有效.这有点疯狂,这很复杂.答案被接受并投票. (3认同)