Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用discord.py将消息发送到指定通道时出错_Python 3.x_Typeerror_Discord.py Rewrite - Fatal编程技术网

Python 3.x 使用discord.py将消息发送到指定通道时出错

Python 3.x 使用discord.py将消息发送到指定通道时出错,python-3.x,typeerror,discord.py-rewrite,Python 3.x,Typeerror,Discord.py Rewrite,当有人加入我的不和时,我在尝试向指定频道发送消息时遇到问题。 我得到了这个错误: Ignoring exception in on_member_join Traceback (most recent call last): File "C:\Users\Timo\Anaconda3\envs\Discord\lib\site-packages\discord\client.py", line 270, in _run_event await coro(*args, **kwargs

当有人加入我的不和时,我在尝试向指定频道发送消息时遇到问题。 我得到了这个错误:

Ignoring exception in on_member_join
Traceback (most recent call last):
  File "C:\Users\Timo\Anaconda3\envs\Discord\lib\site-packages\discord\client.py", line 270, in _run_event
    await coro(*args, **kwargs)
  File "C:/Users/Timo/PycharmProjects/Discord/Bot 1/Main.py", line 30, in on_member_join
    channel = Bot.get_channel("649275309396590626")
TypeError: get_channel() missing 1 required positional argument: 'id'
File "C:/Users/Timo/PycharmProjects/Discord/Bot 1/Main.py", line 31, in on_member_join await channel.send(f"{member} ist dem Server beigetreten!") AttributeError: 'NoneType' object has no attribute 'send'
我使用的是v1.2.5版。 代码如下:

@client.event
async def on_member_join(member):
    channel = Bot.get_channel("649275309396590626")
    await channel.send(f"{member} ist dem Server beigetreten!")
以下是Bot变量:

import discord
from discord.ext import commands
from discord.ext.commands import Bot

client = Bot(command_prefix=".")
我将其编辑为:

@client.event async def on_member_join(member): channel = client.get_channel("649275309396590626") await channel.send(f"{member} ist dem Server beigetreten!")
现在我有一个错误:

Ignoring exception in on_member_join
Traceback (most recent call last):
  File "C:\Users\Timo\Anaconda3\envs\Discord\lib\site-packages\discord\client.py", line 270, in _run_event
    await coro(*args, **kwargs)
  File "C:/Users/Timo/PycharmProjects/Discord/Bot 1/Main.py", line 30, in on_member_join
    channel = Bot.get_channel("649275309396590626")
TypeError: get_channel() missing 1 required positional argument: 'id'
File "C:/Users/Timo/PycharmProjects/Discord/Bot 1/Main.py", line 31, in on_member_join await channel.send(f"{member} ist dem Server beigetreten!") AttributeError: 'NoneType' object has no attribute 'send'

我认为问题在于您调用的是
Bot.get\u channel(id)
,而不是
client.get\u channel(id)


Bot
是类(以及导入的库)的名称,而
client
是该类的对象实例。

我发现了问题,我设置了一个字符串作为ID 而不是int。 现在代码如下所示:

@client.event
async def on_member_join(member):
    channel = client.get_channel(649275309396590626)
    await channel.send(f"{member} ist dem Server beigetreten!")
client.get_guild(id)函数需要整数输入。如果未正确给出该值或id无效,函数将返回None值。当您尝试使用非类型对象发送内容时,会导致错误。因为非类型对象没有“发送”功能


我建议您阅读文档:

您能向我们展示更多代码吗?Bot是什么样子的?这是Bot变量:import discord from discord.ext import commands from discord.ext.commands import Bot client=Bot(command_prefix=get_prefix)请将此添加到您的答案中,以便将信息格式化并呈现给未来的读者!好的,我已将其添加到问题中。如果我的答案解决了您的问题,请随意投票并接受我的答案。否则,请留下评论以澄清!我将其编辑为:
@client.event async def on_member_join(member):channel=client.get_channel(“649275309396590626”)等待频道。发送(f“{member}ist dem Server beigetreten!”)
现在我有一个错误:
文件“C:/Users/Timo/PycharmProjects/Discord/Bot 1/Main.py”,第31行,在on_member_join wait channel.send中(f“{member}ist dem Server beigetreten!”)AttributeError:“NoneType”对象没有属性“send”
看起来该客户端不存在该频道。我已经检查了两次频道ID,并且机器人拥有该频道的所有权限。在检索频道后打印该频道。可能没有。是的,它没有打印任何频道