今年初の記事は discord Rich Presence(discord Activity)についてです。 どんなのかっていうと ゲーム中のユーザーのステータスにゲーム名が出るやつです この記事のソースコードはDiscordConnectorにあります
discord 公式としてはゲームのステータス表示をメインとして利用していますが、 テキストエディタの拡張機能として プロフィールを書き換えている人もいる模様
json を直で書くことで自動でプロフィールが改造されるようにしました。
discord Rich Presenceは、
Embedded App SDK か Game SDK より コマンドが送信されることが想定されていますが、
Private Beta の機能として Discord Desktop App にたいして RPC接続をする方法があります。
RPCの項目をそのまま愚直に実装することで基本は動きますが注意すべきことがあります。
まず WSで接続する際には注意が必要で
ws://127.0.0.1:PORT/?v=VERSION&client_id=CLIENT_ID&encoding=ENCODING
に対して HTTP-Header のOrigin
の検証を行います。
この際 Redirect URI に設定されているドメインでもエラーを吐くので Origin: null
にしになければなりません。
(Discord Supportにドメインを登録するようにお願いしたが断られた…)
また、 WSではなくIPCで接続することができ
俗に言うNamed Pipeに対して 書き込み,読み取りすることで操作がすることができます(Documentにはなぜか書かれていません)
Named Pipeの名前はdiscord-ipc-[0-9]
が割り当てされるようになっているようです。
以上の点以外はすんなり実装できたので記事を終わります