#python #python-3.x #discord #discord.py #chatbot
#python #python-3.x #Discord #discord.py #чат-бот
Вопрос:
Я пытаюсь создать бота для запуска через мою личную учетную запись discord и отправлять сообщения людям, когда они присоединяются к определенному серверу discord, на котором я нахожусь. Однако мой метод on_member_join (member) не выполняется, когда участник присоединяется к серверу (не выводит «зарегистрированный» в терминале). Мне любопытно, как заставить бота прослушивать определенный сервер или просто зарегистрировать это событие в целом. Обратите внимание, что on_connect () и spam () работают должным образом.
import discord
import asyncio
import requests
from discord.ext import commands
yer=commands.Bot(command_prefix="!",help_command=None,self_bot=True)
token="TOKEN"
class SelfBot(commands.Cog):
def __init__(self,yer):
self.yer=yer
@yer.command()
async def spam(ctx):
for i in range(50):
await ctx.send("Hello!")
await asyncio.sleep(0.7)
@yer.event
async def on_connect():
await yer.change_presence(status=discord.Status.idle,activity=discord.Game("Game"))
@yer.event
async def on_member_join(member):
print("registered")
yer.run(token,bot=False)
Ответ №1:
Селфи -боты не авторизованы в Discord и могут заблокировать вашу учетную запись.
API Discord предоставляет отдельный тип учетной записи пользователя, предназначенный для автоматизации, называемый учетной записью бота. Учетные записи ботов могут быть созданы на странице приложений и аутентифицируются с использованием токена (а не имени пользователя и пароля). В отличие от обычного потока OAuth2, учетные записи ботов имеют полный доступ ко всем маршрутам API без использования токенов на предъявителя и могут подключаться к шлюзу реального времени. Автоматизация учетных записей обычных пользователей (обычно называемых «self-bots») за пределами OAuth2 / bot API запрещена и может привести к удалению учетной записи, если ее обнаружат.
Вы не сможете делать такого рода вещи с помощью официального discord.py
модуля, и я не уверен, что вы сможете получить помощь по StackOverflow, если выберете что-то другое для создания само-бота.