You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在不使用Discord Bot的情况下,用Python实现从个人账号每小时向指定Discord频道发送消息

使用个人Discord账号每小时发送消息(新手友好版)

嗨,我懂你想用自己的个人账号而非Bot来定时发消息,而且作为编程新手不想搞太复杂的代码——这就给你一步步拆解,保证简单易懂!

第一步:安装适配个人账号的库

官方的discord.py只支持Bot账号,咱们得用专门给个人账号用的discord.py-self。打开你的终端(Windows是命令提示符,Mac/Linux是终端),输入下面的命令安装:

pip install discord.py-self

第二步:获取你的Discord个人Token

这个Token相当于你账号的“登录密钥”,一定要保密,绝对不能给别人看,也别放到公开代码里! 获取方法如下:

  1. 打开Discord网页版(别用客户端,网页版更容易找)
  2. F12打开开发者工具,切换到「Network」标签页
  3. 刷新页面,在左侧的请求列表里找名为science的请求(找不到可以直接搜索)
  4. 点击这个请求,在右侧「Headers」里找到「Authorization」字段,后面的字符串就是你的Token

第三步:编写极简版Python脚本

把下面的代码复制到一个新的.py文件里(比如叫hourly_discord.py),然后替换掉里面的占位内容就行,每一行我都加了注释,一看就懂:

import discord
import asyncio
from datetime import datetime

# 替换成你刚才拿到的个人Token
MY_TOKEN = "这里填你的Discord Token"
# 替换成目标频道的ID(右键频道→复制ID,需要先开开发者模式)
TARGET_CHANNEL_ID = 123456789012345678  # 这是数字类型,别加引号

class MyDiscordClient(discord.Client):
    async def on_ready(self):
        # 登录成功后会打印这句话,确认你登录的是自己的账号
        print(f"✅ 已登录为 {self.user.name}")
        # 启动定时发消息的任务
        await self.send_message_every_hour()

    async def send_message_every_hour(self):
        while True:
            # 获取要发消息的频道
            target_channel = self.get_channel(TARGET_CHANNEL_ID)
            if target_channel:
                # 生成带当前时间的消息(可以改成你想发的任意内容)
                current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
                message = f"⏰ 每小时定时提醒:现在时间是 {current_time}"
                # 发送消息
                await target_channel.send(message)
                print(f"📤 消息已发送:{current_time}")
            else:
                print("❌ 找不到指定频道,请检查频道ID是否正确")
            
            # 等待1小时(3600秒),然后继续循环发消息
            await asyncio.sleep(3600)

# 初始化客户端,用默认的权限配置就行
client = MyDiscordClient(intents=discord.Intents.default())
# 用个人Token登录Discord
client.run(MY_TOKEN)

小提示:怎么获取频道ID?

你需要先开启Discord的开发者模式:打开Discord客户端→设置→高级→开启「开发者模式」,然后右键你要发消息的频道,就能看到「复制ID」的选项了。

第四步:运行脚本

保存好代码后,在终端里运行:

python hourly_discord.py

运行成功后会打印✅ 已登录为你的用户名,之后每小时就会自动给指定频道发消息啦!

注意事项

  • 千万保护好你的Token,要是泄露了别人能直接登录你的Discord账号
  • 如果Discord更新了,Token可能会失效,到时候按照第二步重新获取就行
  • 要保持脚本一直运行,你可以把电脑一直开着,或者用云服务器挂着(如果需要24小时不间断的话)
  • 每小时发一次消息完全不会触发Discord的限制,别改成每分钟发很多次就行

内容的提问来源于stack exchange,提问作者sting_clasher

火山引擎 最新活动