konnokai GitHub avatar

DiscordWidgetsV2Bot

konnokai

一個 Discord 機器人,讓應用程式擁有者透過斜線指令自訂個人檔案上的 Widgets V2 小工具內容,使用未文件化的 API。

Stars

17

7 天增长

暂无数据

Fork 数

0

开放 Issue

0

开源协议

MIT

最近更新

2026-07-05

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它將原本需要手動操作 Discord 個人檔案小工具編輯的流程自動化,並附帶油猴腳本自動啟用開發者入口中的實驗性小工具編輯器。

适合谁使用

  • 正在嘗試 Discord Social SDK Widgets V2 的應用開發者
  • 想要在個人檔案中動態設定文字或圖片的開發者
  • 想在 Discord 個人檔案上自動顯示 Twitch 開台狀態的實況主
  • 對 C# / Discord.Net 以及未文件化 API 整合有興趣的開發者

典型使用场景

  • 在個人檔案的 Widget 頂部、底部及迷你個人檔案區塊設定自訂文字或圖片
  • 自動更新個人檔案欄位顯示 Twitch 實況狀態(開台/下線)
  • 快速測試 Widgets V2 功能,無需手動構建 API 請求
  • 作為參考實作,用於開發其他呼叫未文件化 Discord API 的機器人

项目优势

  • 指令自動從列舉定義產生,新增或修改欄位只需修改列舉即可
  • Twitch 整合每 30 秒輪詢,僅在狀態變更時才推送,減少 API 呼叫次數
  • 附帶油猴腳本自動啟用開發者入口中的實驗性小工具編輯器
  • 支援本地 .NET 執行與 Docker 部署,資料以 JSON 檔案持久化儲存

使用前须知

  • 依賴未文件化的 API 端點,Discord 可能隨時變更或移除
  • 2026 年 6 月 4 日後只有應用程式擁有者能將小工具加入個人檔案,大幅限制用途
  • 設定過程需要多個手動步驟(開發者入口、客戶端主控台指令),容易出錯

README 快速开始

DiscordWidgetsV2Bot

讓 Discord application 擁有者透過 /widget slash command 自訂個人檔案上的「Widgets V2」小工具內容。C# / Discord.Net,user-install bot,資料以 JSON 檔持久化。

⚠️ Widgets V2 是 Social SDK 的實驗功能,本 bot 呼叫的是未文件化端點,Discord 可能隨時變更。且 2026/6/4 起僅 application 擁有者能把 widget 加到自己的個人檔案。

運作方式

PATCH https://discord.com/api/v9/applications/{appId}/users/{userId}/identities/0/profile
Body: { "data": { "dynamic": [
  { "type": 1, "name": "top-title", "value": "字串" },
  { "type": 3, "name": "top-image", "value": { "url": "https://..." } } ] } }

name 對應 Developer Portal widget 編輯器中設定的 Data Field 名稱(type 1=字串、2=數值、3=圖片)。欄位定義集中在 WidgetService.csStringField / ImageField enum([ChoiceDisplay] 即 API 欄位名),指令選項自動由 enum 產生,改欄位只需要動 enum。

欄位一覽(共 19 個,需與 widget 編輯器的 Data Field 名稱一致)

區塊字串欄位(type 1)圖片欄位(type 3)
Widget Toptop-titletop-sub-title-1top-imagetop-sub-icon-1
Widget Bottom(項目 1–4)bottom-name-Nbottom-description-Nbottom-image-N
Mini Profilemini-profile-stat-textmini-profile-stat-iconmini-profile-contained-image

前置步驟(Developer Portal / Discord 客戶端手動操作)

  1. 建立應用程式 → 遊戲 → Social SDK 填表啟用
  2. 啟用 Widget 編輯頁 (可安裝 油猴腳本 自動套用,或手動在 Developer Portal 的 DevTools console 執行腳本)

DevTools console 腳本

let _mods = webpackChunkdiscord_developers.push([[Symbol()],{},r=>r.c]);
webpackChunkdiscord_developers.pop();

let findByProps = (...props) => {
    for (let m of Object.values(_mods)) {
        try {
            if (!m.exports || m.exports === window) continue;
            if (props.every((x) => m.exports?.[x])) return m.exports;

            for (let ex in m.exports) {
                if (props.every((x) => m.exports?.[ex]?.[x]) && m.exports[ex][Symbol.toStringTag] !== 'IntlMessagesProxy') return m.exports[ex];
            }
        } catch {}
    }
}

findByProps("getAll").getAll().find(e=>e.getName() === "ApexExperimentStore").createOverride("2026-03-widget-config-editor", 1)

(跑完腳本後記得點左上角的倒退箭頭再重新點到你的應用程式頁面,切記不可重整頁面,不然腳本會被覆寫)

  1. 開啟 Widget 編輯頁並建立欄位(User Data 型別,名稱須與本專案欄位一致)、設定 fallback 避免忘記設定導致欄位空白,保存後記得發布
  2. OAuth2 頁設定 redirect URI (重新導向) 為 https://discord.com 後保存
  3. OAuth2 URL 產生器 → 勾選 openid 以及 sdk.social_layer選擇重新導向的 URI 選擇剛剛設定的重新導向網址(應該要是 https://discord.com
  4. 複製產生的 URL,將 URL 中的 `response_type

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

TryCaspian
TryCaspian GitHub avatar

caspian-sdk

Caspian is an open-source SDK and gateway that lets AI agents communicate across multiple channels (Slack, Discord, Telegram, email, etc.) through a single handler, eliminating per-channel adapter code.

Python
274
GravelElementalist
GravelElementalist GitHub avatar

Discord-Zapret

A Windows tool that uses WinDivert and zapret strategies to bypass DPI censorship for Discord, YouTube, Telegram, and other online services.

Batchfile
7
CennoxX
CennoxX GitHub avatar

WidgetRelay

WidgetRelay is a Tasker plugin that reads text and JSON from Android home screen widgets and can click their elements, all without a launcher.

移动开发
6