如何加入服务器?
How to join a server?
我正在尝试使用 python 设置 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')
这基本上是 GitHub 页面上给出的基本 discord.py 脚本。但是,我似乎无法弄清楚如何让它真正加入我的服务器。将此行插入 on_ready
函数时:
server = await client.accept_invite('instant-invite-code')
将 "instant-invite-code" 替换为我的实际即时邀请代码(我尝试了 discord.gg/code 和代码),我得到
discord.errors.Forbidden: FORBIDDEN (status code: 403): Bots cannot use this endpoint
日志确实有效;我得到带有我的用户名和 ID 的输出。我的机器人已在 discord API 中注册,我已经有一个令牌。
我也遇到了一些麻烦。您需要做的是:
- 转到 Discord developer pages(如果还没有,请登录)。
- 转到包含要添加到频道的机器人的应用程序。
- 复制 Client/Application ID。
- 转到https://discordapp.com/oauth2/authorize?client_id=CLIENT_ID_GOES_HERE&scope=bot&permissions=0 < You can set permissions for the bot here. Permissions can be calculated here。
- Select 服务器并点击授权。
您的机器人现在将成为服务器的成员,并将响应您给它的命令。前任。 !test 在您提供的代码中。
编辑:您现在可以使用权限 link (1) 生成所需的整个 URL。
我建议像这样编辑代码:
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('Invite: https://discordapp.com/oauth2/authorize?client_id={}&scope=bot'.format(client.user.id))
print('------')
我认为这是最好和最简单的解决方案。它对我有用。
编辑:Discord 实际上制作了他们自己的 OAuth2 url 生成器,因此请使用:https://discordapp.com/developers/tools/oauth2-url-generator
我问这个问题已经 4 年了,这是我现在处理这个问题的方式。
我使用 https://discordapi.com/permissions.html where you just paste your bot's ID (which you can get here: https://discord.com/developers/applications ) 并且它还有一个好处是可以计算你想要的任何权限配置。
如果你很懒,这对你来说也是一个不错的解决方案。
我正在尝试使用 python 设置 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')
这基本上是 GitHub 页面上给出的基本 discord.py 脚本。但是,我似乎无法弄清楚如何让它真正加入我的服务器。将此行插入 on_ready
函数时:
server = await client.accept_invite('instant-invite-code')
将 "instant-invite-code" 替换为我的实际即时邀请代码(我尝试了 discord.gg/code 和代码),我得到
discord.errors.Forbidden: FORBIDDEN (status code: 403): Bots cannot use this endpoint
日志确实有效;我得到带有我的用户名和 ID 的输出。我的机器人已在 discord API 中注册,我已经有一个令牌。
我也遇到了一些麻烦。您需要做的是:
- 转到 Discord developer pages(如果还没有,请登录)。
- 转到包含要添加到频道的机器人的应用程序。
- 复制 Client/Application ID。
- 转到https://discordapp.com/oauth2/authorize?client_id=CLIENT_ID_GOES_HERE&scope=bot&permissions=0 < You can set permissions for the bot here. Permissions can be calculated here。
- Select 服务器并点击授权。
您的机器人现在将成为服务器的成员,并将响应您给它的命令。前任。 !test 在您提供的代码中。
编辑:您现在可以使用权限 link (1) 生成所需的整个 URL。
我建议像这样编辑代码:
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('Invite: https://discordapp.com/oauth2/authorize?client_id={}&scope=bot'.format(client.user.id))
print('------')
我认为这是最好和最简单的解决方案。它对我有用。
编辑:Discord 实际上制作了他们自己的 OAuth2 url 生成器,因此请使用:https://discordapp.com/developers/tools/oauth2-url-generator
我问这个问题已经 4 年了,这是我现在处理这个问题的方式。
我使用 https://discordapi.com/permissions.html where you just paste your bot's ID (which you can get here: https://discord.com/developers/applications ) 并且它还有一个好处是可以计算你想要的任何权限配置。
如果你很懒,这对你来说也是一个不错的解决方案。