0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

スーパーグローバルチャット v2 APIドキュメント

Last updated at Posted at 2024-12-17

概要

スーパーグローバルチャットに参加するBOT間で、チャットに投稿されたメッセージをやり取りするために使用します。
メッセージを受信したBOTは、#super-global-chat チャンネルにJSON形式でメッセージを送信します。

機能

JSONの先頭に"type"キーを使用し、これから送信するJSONがどの機能に該当するかを示します。
機能は以下の通りです。

Values of "type" key

Value Requirement Levels Description
message Must 送信されたメッセージ
delete Should 削除されたメッセージ
edit Should 編集されたメッセージ
empty May 空(送信テスト)
(xx-example) May 独自規格

message

Key Requirement Levels Type Description
type Must string Valueには"message"が入ります。
メッセージが送信されたことを示します。
version Should string スーパーグローバルチャットのバージョン
どの機能が搭載されているかが分かります。
userId Must snowflake User Objectidが入ります。
メッセージの送信者のユーザIDです
userName Must string User Objectusernameが入ります。
メッセージの送信者の名前です
global_nameではありません。
userDiscriminator Must string User Objectdiscriminatorが入ります。
メッセージの送信者のDiscordタグです
userAvatar Must ?string author FieldUser Objectavatarが入ります。
メッセージの送信者のAvaterハッシュです。
空の場合はnullが入ります。
isBot Should boolean author FieldUser Objectbotが入ります。
メッセージの送信者がOAuth2アプリケーションに属しているかどうかを示します。
guildId Must snowflake Guild Objectidが入ります。
メッセージが送信されたサーバーのIDです
guildName Must string Guild Objectnameが入ります。
メッセージが送信されたサーバーのIDです
guildIcon Must ?string Guild Objecticonが入ります。
メッセージが送信されたサーバーのiconハッシュです。
空の場合はnullが入ります。
channelId Should snowflake Channel Objectidが入ります。
メッセージが送信されたチャンネルのIDです
channelName Should string Channel Objectnameが入ります。
メッセージが送信されたチャンネルの名前です
messageId Should snowflake Message Objectidが入ります。
メッセージのIDです
content Must string Message Objectcontentが入ります。
メッセージの内容です
reference? Should string Message Reference Objectmessage_idが入ります。
返信先メッセージのIDです
attachmentsUrl? Must array of string Attachmenturlの配列が入ります。
添付ファイルのURLです。
空の配列は入らず、添付ファイルが0件の場合はこのキーは使用しません
(xx-example) May any 独自規格

  • 最小パターン
{
  "type": "message", 
  "userId": "607645717623996426", 
  "userName": "Tsukikoh", 
  "userDiscriminator": "2710", 
  "userAvatar": "a118cc1ef21fcbac75764483108888fb", 
  "isBot": false, 
  "guildId": "706905953320304772", 
  "guildName": "Super Global Chat関係", 
  "guildIcon": "13e9bceb07fec376de1b1af835aca51a", 
  "channelId": "707158194572623903", 
  "channelName": "kensaku-sgc", 
  "messageId": "799141495155195975", 
  "content": "メッセージ削除の下準備として、検索BOT側で全メッセージに「mID→Message.id」を入れる事にした"
}
  • 最大パターン
{
  "type": "message", 
  "version": "2.1.7", 
  "userId": "607645717623996426",
  "userName": "つきこう",
  "userDiscriminator": "2710",
  "userAvatar": "a118cc1ef21fcbac75764483108888fb",
  "isBot": false,
  "guildId": "706543524958699570",
  "guildName": "Newグローバルチャットサーバー",
  "guildIcon": "db2be882afde5818366405376458a774",
  "channelId": "707158194572623903",
  "channelName": "kensaku-sgc",
  "messageId": "773865745187733514",
  "content": "Hello World",
  "reference": "877075663352389672",
  "attachmentsUrl": [ "https://cdn.discordapp.com/attachments/771644708048470046/771652380143517706/video0.mov", "https://cdn.discordapp.com/attachments/771644708048470046/771652381800398868/video1.mov" ]
}

delete

Key Requirement Levels Type Description
type Must string Valueには"delete"が入ります。
メッセージが削除されたことを示します。
messageId Must snowflake Message Objectidが入ります。
メッセージのIDです
version Should string スーパーグローバルチャットのバージョン
どの機能が搭載されているかが分かります。
userId May snowflake User Objectidが入ります。
メッセージの送信者のユーザIDです
guildId May snowflake Guild Objectidが入ります。
メッセージが送信されたサーバーのIDです
channelId May snowflake Channel Objectidが入ります。
メッセージが送信されたチャンネルのIDです
(xx-example) May any 独自規格
content Should NOT string Message Objectcontentが入ります。
メッセージの内容です
削除内容をログとして残すような実装はセキュリティ上の観点で非推奨です。

edit

empty

補足

Requirement Levels

  • Must : 必須。送信する機能を備えなければならず、これを受信した場合は適切に処理しなければならない。
  • Should : 推奨。できる限り搭載しなければならず、これを受信した場合はできる限り適切に処理しなければならない。(ただし、どうしても導入が難しい場合は導入しないことも可能)
  • May : 任意。必要に応じてその機能を備えることができる。また、このメッセージが送信されることを考慮し、最低限意図しない不具合を発生させないようにする必要がある。

snowflake

Discordは、IDとしてスノーフレーク形式を利用しています。
JSONで扱う場合、中身はstring型の数字の羅列です。

Version Types

Value Description
1.0 初版。userId userName userDiscriminator userAvatar guildId guildName guildIcon content attachmentsUrl の実装
1.1 isBot の実装
1.2 channelId channelName の実装
1.3 messageId の実装
1.4 type の実装 type=message以外を除外
(v2.0に即座にアップグレードできないBOT向けに、v2.0以降の新機能との共存対策)
1.5 reference の実装
1.6 attachmentsUrl のパーセントエンコーディングの廃止
1.7 userId channelId messageId reference を string型に変更
2.0 type empty 独自仕様 の実装
応答型の独自仕様向けにqueryを追加
2.1 edit delete の実装
2.1.5 reference の実装
2.1.6 attachmentsUrl のパーセントエンコーディングの廃止
2.1.7 userId channelId messageId reference を string型に変更
2.2 auth ban の実装予定

2.n.x と 1.x は詳細の仕様変更の部分が一致する

?explanation

指定された型 OR null
?string : string型か、もしくはnullが入ります。

explanation?

必要なときにのみ使用するキーです。
attachmentsUrl? : 添付ファイルが存在するときのみ attachmentsUrl キーを使用します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?