当前位置: 首页 > 知识库问答 >
问题:

discord.py|如何向我的机器人所在的每个公会的所有者发送消息

邓德惠
2023-03-14

所以我想问,有没有一种方法可以让我发出命令,比如当我调用它时,机器人会向我的机器人所在的每个帮会的所有者发送一个dm,其中包含我的消息,或者它可以将该消息发送到它所在的每个帮会的员工专用频道。我可以用这个命令发布公告之类的东西。

共有1个答案

左丘边浩
2023-03-14

要直接向成员发送消息,您需要获取成员对象的dm_频道。您可以通过使用成员来实现这一点。dm_频道。只需使用guild。所有者作为成员,并使用dm频道发送消息
你应该有不和谐。意图。帮会和不和。意图。成员已启用,以便您的机器人获得帮会。所有者。

@client.command() 
@commands.is_owner() 
async def broadcast(ctx, message):     
    for guild in client.guilds:
        # get the owner of guild
        owner = guild.owner

        # check if dm exists, if not create it
        if owner.dm_channel is None:
            await owner.create_dm()
      
        # if creation of dm successful
        if owner.dm_channel != None:
            await owner.dm_channel.send(message)
   
        for channel in guild.channels:             
            if(channel.name == 'general'):                 
                await channel.send(message)
 类似资料:
  • 因此,我希望我的bot在我的bot所在的每台服务器上都发送一条消息,但它将仅以一个通道名发送一条消息,如 示例: 机器人搜索频道名称将军 机器人会向该频道发送一条消息,它会继续向我的机器人所在的其他服务器发送“你好”。 谁能给我举个例子?因为我不知道如何。所以我在这里寻求帮助

  • 我用php编写了一个电报机器人。我想向所有成员发送一条短信,我保存了所有成员的chat\u id。我尝试使用此功能发送消息: 并使用此功能获取用户聊天ID并发送消息: 但这并不能正常工作,消息会多次发送给成员,并且在我清除数据库之前不会停止。

  • 我有一个不和谐机器人,定期检查数据库中的一些数据,如果有更新,它会向通道输出一些内容。所以我设置了一个每小时运行一次的函数。 当机器人被添加到多个服务器时,问题就出现了,在这些服务器中,消息只被发送到特定的,因此消息只被发送到我的服务器通道。本质上,我只向我的渠道发送通知,我怎么能向每个拥有我的机器人的渠道发送通知,这可能吗?

  • 每当有人将机器人添加到公会时,它都会向系统通道发送一个带有一点信息的嵌入。 我希望它向邀请机器人的人(使用oauth授权链接的帐户)发送一个相同的消息。问题是,事件只接受1个参数,它没有提供有关使用授权链接将bot添加到guild的人员的任何信息。 有办法做到这一点吗?我是否必须使用“欺骗”方法,比如有一个自定义网站来记录使用邀请的帐户?

  • 我目前正在制作一个discord bot,并希望在服务器加入时在服务器的通道中发送一条消息,这是我到目前为止的代码。 当我运行这段代码时,什么都不会发生。我没有得到任何ERORR或输出。 如果有人能帮忙,那就太棒了。谢谢

  • 问题内容: 我需要向程序中运行的每个线程发送信息,并且每个线程都必须处理该信息。 我无法使用常规队列来执行此操作,因为那样一来,一旦一个线程从队列中删除了数据,所有其他线程将无法再看到它。 实现此目标的最佳方法是什么? 问题答案: 一种方法是在 每个 线程中都有一个队列,广播信息的功能负责将消息插入每个线程的队列中。 例如,这类似于消息队列在Windows中的工作方式。每个执行GUI操作的线程都有