我最近才開始為 Discord.py 使用 cogs/extension 檔案,但遇到了一些我不知道如何解決的問題。我正在嘗試在特定頻道中發送訊息,但我總是收到錯誤訊息AttributeError: 'NoneType' object has no attribute 'send'。我知道我可以在特定頻道中發送訊息:
@client.command()
async def test(ctx):
await ctx.send("test")
channel = client.get_channel(1234567890)
await channel.send("test2")
這在我的“主檔案”中作業得很好,但在我的“擴展檔案”中卻沒有,所以這不是因為 ID 錯誤。該await ctx.send("test")沒有問題,以及作品,連同其他任何命令我有,只是channel.send造成麻煩。
我正在匯入完全相同的庫和 co,否則在兩個檔案中也應該具有完全相同的“設定”。
uj5u.com熱心網友回復:
NoneType錯誤意味著它沒有正確識別通道。當您使用時,get_channel您正在尋找可能沒有它的機器人快取中的通道。您可以fetch_channel改用 - 這是一個 API 呼叫。
@client.command()
async def test(ctx):
await ctx.send("test")
channel = await client.fetch_channel(1234567890)
await channel.send("test2")
uj5u.com熱心網友回復:
如您所知,發生錯誤是因為您的頻道未被識別。解決辦法是fetch_channel(channel_id)。問題出在你的channel = client.get_channel (1234567890).
嘗試await在客戶端之前添加。接下來替換get_channel為fetch_channel.
對于一般用途,請考慮您的 get_channel(),而您需要 fetch_channel (channel_id) 來檢索具有指定 ID的x.GuildChannel或x.PrivateChannel。
@client.command()
async def test(ctx):
await ctx.send("test")
channel = await client.fetch_channel(1234567890) #update
await channel.send("test2")
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/388039.html
