基于 Discord Bot API v10 实现,采用 Bot Token Bearer 鉴权。
包信息
- NuGet 包:
Bitzsoft.Integrations.InstantMessaging.Discord - 接口:
IInstantMessagingService - 鉴权:Bot Token Bearer(
Authorization: Bot {token}) - Provider ID:
discord
配置
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
BotToken | string | 是 | — | Bot Token(形如 MTIzNDU2...) |
BaseUrl | string | 否 | https://discord.com/api/v10 | Discord Bot API 基地址 |
HttpClientName | string | 否 | InstantMessagingDiscord | 业务 HttpClient 命名 |
{ "InstantMessaging": { "Discord": { "BotToken": "MTIzNDU2-your-bot-token" } }}注册
// 方式一:IConfiguration(默认读取 "InstantMessaging:Discord" 配置节)services.AddDiscordInstantMessaging(configuration);
// 方式二:委托配置services.AddDiscordInstantMessaging(options =>{ options.BotToken = "MTIzNDU2-your-bot-token";});使用示例
// 发送文本消息var result = await im.SendTextMessageAsync(new SendTextMessageRequest{ Channel = "123456789012345678", Text = "Hello Discord!"});
// 查询频道列表var channels = await im.ListChannelsAsync();
// 创建频道await im.CreateChannelAsync("project-chat");
// 邀请成员await im.InviteMemberAsync(new InviteMemberRequest{ Channel = "project-chat", UserId = "987654321"});鉴权机制
- 每个请求通过
Authorization: Bot {BotToken}头携带 Bot Token。 - Token 通过 Discord Developer Portal 创建机器人后获取。
已知限制
Discord 的频道 ID 为数字雪花(snowflake)字符串。Provider 注册为 Transient,避免 Singleton 捕获 typed HttpClient。