向 twitch 聊天发送消息不起作用

Sending a message to twitch chat doesnt work

我正在创建一个供个人使用的简单 Twitch 机器人。我正在使用 twitchio.ext 命令。一切正常,我已连接,我可以打印聊天中的所有消息,我的机器人可以响应命令,但我无法向聊天发送消息,我不知道为什么。

from twitchio.ext import commands

class Bot(commands.Bot):

    def __init__(self):
        super().__init__(token='oauth:censored', prefix='g ', nick = "nick of the bot", irc_token = "censored", initial_channels=['channel'])

    async def event_ready(self):
        print(f'Using bot as {self.nick}')

    @commands.command()
    async def test(self, ctx: commands.Context):
        await ctx.send('test')
        print("printed")

bot = Bot()

@bot.event()
async def event_message(msg):
    print(msg.author.name)
    print(msg.content)
    await bot.handle_commands(msg)

bot.run()

当我在聊天中输入“g test”时,消息“test”没有发送,但消息“printed”被打印到控制台。你知道问题出在哪里吗?另外想请教一下有什么方法可以不响应命令或事件直接发消息聊天

尝试将机器人添加为 mod

bot init() 函数中的 'nick' 似乎没有执行任何操作,昵称链接到您的 IRC 用户名。

我假设 init() 函数中 initial_channels 中的频道实际上不是你放在那里的频道,因为你说你能够输入聊天内容。

如果您使用机器人的频道(链接到 oauth 密钥)与您在聊天中连接的频道不同,那么您可能需要将机器人用户名添加为 mod聊天中的操作员

尝试 /mod [bot_username] 在聊天中作为频道所有者执行此操作

此外,如果您的机器人与您在 twitch 上发送命令的帐户相同,则会达到速率限制,除非它们是 mod。因此,要么为您的机器人创建一个专用帐户,要么 mod 服务器上的机器人