如何简化重复代码:实现多账号多消息批量调用Discord API
批量发送Discord消息实现方案
步骤1:组织数据文件
推荐用单个文本文件关联账号token与对应消息,每行格式为 token|消息内容(例如下方格式),确保token和消息一一对应,避免错位:
token1|账号1的待发送消息 token2|账号2的专属内容 token3|账号3要发的文本
如果习惯分开存储,需保证messages.txt(每行一条消息)和tokens.txt(每行一个token)的行数完全一致。
步骤2:修改后的代码
import requests # 读取账号与消息数据 def load_account_data(file_path): account_list = [] with open(file_path, 'r', encoding='utf-8') as f: for line in f: line = line.strip() if not line: continue # 仅分割第一个|,兼容消息含|符号的场景 token, message = line.split('|', 1) account_list.append({ 'token': token.strip(), 'message': message.strip() }) return account_list # 封装消息发送逻辑 def send_message(token, message, channel_id='1007038944707346502'): api_url = f"https://discord.com/api/v9/channels/{channel_id}/messages" headers = {'authorization': token} payload = {'content': message} try: resp = requests.post(api_url, data=payload, headers=headers) resp.raise_for_status() print(f"账号[{token[:10]}...]消息发送成功") except requests.exceptions.RequestException as e: print(f"账号[{token[:10]}...]发送失败: {str(e)}") if __name__ == "__main__": # 替换为你的数据文件路径 accounts = load_account_data('account_messages.txt') # 循环切换账号发送对应消息 for acc in accounts: send_message(acc['token'], acc['message'])
关键说明
load_account_data:读取文本文件并处理每行内容,返回结构化的账号-消息列表,兼容消息含|符号的场景。send_message:单独封装发送逻辑,加入异常捕获,发送结果实时反馈,便于排查问题。- 主函数通过循环自动切换每个账号,发送对应的专属消息。
注意事项
- 确保Discord账号token有效,且账号有权限向目标频道发消息。
- 文本文件需用UTF-8编码保存,避免中文乱码。
- 避免短时间内高频发送,防止触发Discord API限流。
内容的提问来源于stack exchange,提问作者Ömer Doğan
相关产品推荐
相关产品推荐

