首页 > 解决方案 > discord.py :在频道上发送消息 2-3 次

问题描述

当我在我的 Gmail 帐户上收到来自特定发件人的新邮件时,我使用 Discord.py 在频道上推送通知做了一个机器人 Discord。它每 60 秒循环一次。我做了这样的事情:

@tasks.loop(seconds=60)
async def get_message():
    channel = bot.get_channel(CHANNEL_NB)
    
    # Call the Gmail API and get all new message with Google query

    if not messages:
        print('You have no new messages.')
    else:
        message_count = 0
        for message in messages:
            msg = service.users().messages().get(userId='me', id=message['id']).execute()
            message_count += 1
        print('You have ' + str(message_count) + " unread messages.")
        guild = bot.guilds[1]
        group = get(guild.roles, name='NotifierGmail')
        await channel.send(f'{group.mention} You have ' + str(message_count) + " unread message(s)")

@bot.event
async def on_ready():
    get_message.start()
    print('Bot is ready.')
    print('------')

bot.run('TOKEN')

该机器人运行良好,但有时会发送 2 或 3 个通知,我不明白为什么。我在 Heroku 上托管机器人。

标签: pythonasync-awaitdiscorddiscord.py

解决方案


推荐阅读