尝试制作不和谐机器人,但为啥 client.send() 错误?
Posted
技术标签:
【中文标题】尝试制作不和谐机器人,但为啥 client.send() 错误?【英文标题】:try make discord bot, but why client.send() error?尝试制作不和谐机器人,但为什么 client.send() 错误? 【发布时间】:2021-06-24 10:08:08 【问题描述】:import discord
import requests
import asyncio
from json import loads
twitch_Client_ID = 'id'
twitch_Client_secret = 'secret'
discord_Token = 'token'
discord_channelID = 'id'
discord_bot_state = 'TEST'
twitchID = 'tid'
msg = 'LIVE! https://www.twitch.tv/' + twitchID
client = discord.Client()
@client.event
async def on_ready():
print(client.user.id)
print("ready")
game = discord.Game(discord_bot_state)
await client.change_presence(status=discord.Status.online, activity=game)
channel = client.get_channel(int(discord_channelID))
oauth_key = requests.post("https://id.twitch.tv/oauth2/token?client_id=" + twitch_Client_ID +
"&client_secret=" + twitch_Client_secret + "&grant_type=client_credentials")
access_token = loads(oauth_key.text)["access_token"]
token_type = 'Bearer '
authorization = token_type + access_token
print(authorization)
check = False
while True:
print("ready on Notification")
headers = 'client-id': twitch_Client_ID,
'Authorization': authorization
response_channel = requests.get(
'https://api.twitch.tv/helix/streams?user_login=' + twitchID, headers=headers)
print(response_channel.text)
# try:
if loads(response_channel.text)['data'][0]['type'] == 'live' and check == False:
await client.wait_until_ready()
await channel.send(msg)
print("Online")
check = True
# except:
# print("Offline")
#check = False
await asyncio.sleep(10)
client.run(discord_Token)
这里是我的所有代码.. 和 我看到了这个错误
AttributeError: 'NoneType' 对象没有属性 'send'
# try:
if loads(response_channel.text)['data'][0]['type'] == 'live' and check == False:
await client.wait_until_ready()
await channel.send(msg)
我认为有问题的代码在这里。 这里有什么问题? 为什么总是出错.....
我试试 这个:https://www.reddit.com/r/discordapp/comments/6ylp7t/python_bot_channel_object_has_no_attribute_send/ 和这个: AttributeError: 'NoneType' object has no attribute 'send' Discord.py rewrite
但不要为我工作!
【问题讨论】:
你确定channel
中存储了一个有效的通道对象?
你有没有试过检查channel = client.get_channel(int(discord_channelID))
时的结果是什么?您是否尝试检查 discord_channelID
的值是否正确?
谢谢大家的回答!我解决了这个问题!
【参考方案1】:
看起来像你的channel is None
。根据docs get_channel(id: int)
可能会在未找到频道时返回None
。仔细检查您的discord_channelID
是否正确,并且它是int
(不是您的示例中的str
)。
【讨论】:
感谢您的回答。我总是尝试 channel = discord_channelID,但这是不正确的。所以,我尝试了 channel = discord_message_channelID。而且,为我工作!谢谢以上是关于尝试制作不和谐机器人,但为啥 client.send() 错误?的主要内容,如果未能解决你的问题,请参考以下文章
为啥不和谐机器人适用于默认表情符号,而当我放置自定义表情符号时不起作用?