Webhookとは
事前にユーザ様にて設定していただいた URL に対して、チャット上で発生したメッセージやイベントを
HTTP リクエストとして送信する機能です。各ユーザ毎に1つのWebhookを設定することができ、該当ユーザが参加するトーク上で発生したメッセージやイベント(トークの作成やメンバー変更など)の情報が指定URLに送信されます。
【この記事の内容】
・疎通確認(Chat.EventType : "Ping")
・トーク作成(Chat.EventType : "CreateTalk")
・トークプロパティ更新(Chat.EventType : "UpdateTalkProperty")
・トークタグ更新(Chat.EventType : "UpdateTalkTag")
・トーク参加者変更(Chat.EventType : "UpdateTalkMember")
・トークルーム削除(Chat.EventType : "DeleteTalk")
・各種メッセージ投稿(Chat.EventType : "PostMessage")
・各種メッセージ削除(Chat.EventType : "DeleteMessage")
Webhook の設定について
DiSCUS の設定画面から、チャット設定→Webhook 設定と進むと、Webhook の作成、変更、削除を行う事が出来ます。(Webhookの具体的な設定方法はこちらの記事をご覧ください。)
Webhook の設定項目
項目 | 必須 | 内容 | 備考 |
---|---|---|---|
対象ユーザ | 〇 | Webhook を設定するユーザを1名指定 | Webhook 作成時に決定し、以後変更不可 |
送信先URL | 〇 | メッセージやイベントを送信する URL | http または https スキームのURLを設定 |
Webhook説明 | メモ用の任意文字列 | Webhookの挙動には影響しない | |
シークレットキー | 〇 | DiSCUS からのリクエストを検証するためのキー 任意文字列を指定 |
検証の方法については後述 |
通知失敗時の再通知 | ー | 送信先URLへのリクエストに失敗した際、 一定期間・回数のリトライを行うかどうかの On / Off 設定 |
ユーザ様の都合にて、 イベントの重複受信制御などが難しい場合には Off を選択してもらう |
設定の有効無効 | ー | この Webhook を有効にするかどうかの On / Off 設定 |
送信先URLの要件
・DiSCUS からのリクエスト受信に成功したら、200 番台の HTTP ステータスを返却する事。
・ベーシック認証などの認証処理には未対応。
DiSCUS から指定URLへのHTTPリクエスト内容
HTTPヘッダ
ヘッダ | 値 | 備考 |
---|---|---|
Content-Type | application/json | |
User-Agent | KS3-Webhook/1.0 | |
X-KS3-WHSign | リクエストボディのダイジェスト値 | HMAC SHA3-512 アルゴリズムで算出(16進数表記) |
X-KS3-WHSign ヘッダにはシークレットキーを使って HMAC SHA3-512 で算出したリクエストBodyのダイジェスト値が格納され、これを使ってリクエストが正しく DiSCUS から送信された物かを検証する事が出来ます。(後述)
リクエストBody
JSON 形式のデータとなる。Chat.EventType プロパティを参照してイベントタイプを判別、イベントタイプごとにリクエストBodyから取得できるデータは異なります。
Chat.EventType | イベントタイプ | 送信データ概要 | |
---|---|---|---|
Ping | 疎通確認 | 特になし。 Webhook 追加などのタイミングで送信 |
|
CreateTalk | トーク作成 | 作成されたトークの詳細情報 | |
UpdateTalkProperty | トークプロパティ更新 | 変更後のトーク名、説明、アイコン画像、ラベル | |
UpdateTalkTag | トークタグ更新 | 変更後のトークタグリスト | |
UpdateTalkMember | トーク参加者変更 | 変更後のメンバー構成 | |
DeleteTalk | トークルーム削除 | 削除されたトークのトークID | |
PostMessage | 各種メッセージ投稿 | 投稿されたメッセージの詳細内容 | |
DeleteMessage | 各種メッセージ削除 | 削除されたメッセージのメッセージID | |
AddReaction | リアクション登録 | 追加されたリアクション | |
RemoveReaction | リアクション削除 | 削除されたリアクション |
リクエストの検証
シークレットキーによる検証方法
ユーザ様指定の URL にてDiSCUS からのリクエストを受信後に下記の検証を行っていただく事で、当該リクエストが間違いなく DiSCUS から送信されたものである事を確認することができます。
①受信した HTTP リクエストから以下の値を読み取る
HTTP ヘッダ項目:X-KS3-WHSign
リクエストBODY
②Webhook に設定したシークレットキーの値を使用
HMAC SHA3-512 アルゴリズムでリクエストBodyのダイジェスト値を取る
③生成したダイジェスト値と HTTPヘッダ X-KS3-WHSign の値を比較する
一致する場合、検証は成功。
(DiSCUS からのリクエストであり、改ざんされていない)
※ Java でのダイジェスト値算出例
"import java.nio.charset.StandardCharsets;
import java.security.GeneralSecurityException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
public class DigestFunction {
/** シークレットキーを使って deta のダイジェスト値を取る */
public static String getDigest( String secret, byte[] data )
throws GeneralSecurityException{
// HMAC SHA3-512 でダイジェスト値を取る
String algorithm = ""HmacSHA3-512"";
SecretKeySpec keySpec = new SecretKeySpec(
secret.getBytes(StandardCharsets.UTF_8), algorithm );
Mac mac = Mac.getInstance( algorithm );
mac.init( keySpec );
byte[] macBytes = mac.doFinal( data );
// 16進表記の文字列で返却
StringBuilder builder = new StringBuilder( 2 * macBytes.length );
for( byte b : macBytes ){
builder.append( String.format(""%02x"", (b & 0xff)) );
}
return builder.toString();
}
}"
通知イベント内容
全イベントタイプ共通
項目 | 形式 | 必須 | 内容 | 備考 | |||
---|---|---|---|---|---|---|---|
Chat.EventType | string | 〇 | イベントタイプ | イベントタイプごとにデータ構造が異なる。 以下のいずれかの値。 "Ping" : 疎通確認 "CreateTalk" : トーク作成 "UpdateTalkProperty" : トークプロパティ更新 "UpdateTalkTag" : トークタグ更新 "UpdateTalkMember" : トーク参加者変更 "DeleteTalk" : トークルーム削除 "PostMessage" : 各種メッセージ投稿 "DeleteMessage" : 各種メッセージ削除 "AddReaction" : リアクション登録 "RemoveReaction" : リアクション削除 |
疎通確認(Chat.EventType : "Ping")
項目 | 形式 | 必須 | 内容 |
---|---|---|---|
Chat.Ping | object | 〇 | 疎通確認イベントデータ |
Chat.Ping.EventUser | uuid | 〇 | イベント送信者のユーザID |
Chat.Ping.EventDateTime | date-time | 〇 | イベント発生時刻 |
EXAMPLE(JSONデータ)
{
"Chat" : {
"EventType" : "Ping",
"Ping" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z"
}
}
}
トーク作成(Chat.EventType : "CreateTalk")
項目 | 形式 | 必須 | 内容 | 備考 |
---|---|---|---|---|
Chat.CreateTalk | object | 〇 | トーク作成イベントデータ | |
Chat.CreateTalk.EventUser | uuid | 〇 | イベント送信者のユーザID | |
Chat.CreateTalk.EventDateTime | date-time | 〇 | イベント発生時刻 | |
Chat.CreateTalk.Talk | object | 〇 | 本イベントで作成されたトークの情報 | |
Chat.CreateTalk.Talk.TalkID | uuid | 〇 | トークID | |
Chat.CreateTalk.Talk.CategoryCode | string | 〇 | トークのカテゴリコード | "TALK":通常トーク、"ANNOUNCE" 一斉同報。※現在は "TALK" のみ |
Chat.CreateTalk.Talk.AuthorID | uuid | 〇 | トーク作成ユーザのユーザID | |
Chat.CreateTalk.Talk.CreateDateTime | date-time | 〇 | トーク作成日時 | |
Chat.CreateTalk.Talk.UpdateDateTime | date-time | 〇 | トーク更新日時 | |
Chat.CreateTalk.Talk.Properties | object | 〇 | トークの基本情報 | |
Chat.CreateTalk.Talk.Properties.TalkName | string | 〇 | トーク名 | |
Chat.CreateTalk.Talk.Properties.TalkDescription | string | トーク説明文 | ||
Chat.CreateTalk.Talk.Properties.TalkLabel | string | トークラベル | カラーコード("#rrggbb" 形式)。未指定の場合は空文字となる | |
Chat.CreateTalk.Talk.Properties.TalkIconPath | string | トークアイコン画像アクセス用URL(パス部) | ||
Chat.CreateTalk.Talk.Permission | object | 〇 | トークの権限情報 | |
Chat.CreateTalk.Talk.Permission.TalkMetaPermissionFlag | boolean | 〇 | トーク情報変更可否フラグ | トーク作成ユーザ以外がトークの情報を変更できるかどうかのフラグ |
Chat.CreateTalk.Talk.Permission.TalkMemberPermissionFlag | boolean | 〇 | メンバー変更可否フラグ | トーク作成ユーザ以外がトーク参加者を変更できるかどうかのフラグ |
Chat.CreateTalk.Talk.Permission.FreePostingFlag | boolean | 〇 | 自由投稿フラグ | トーク作成者以外がメッセージ投稿できるかどうかのフラグ |
Chat.CreateTalk.Talk.TalkTagList[] | list[string] | 〇 | トークタグリスト | トークに設定されているタグのリスト。空リストの場合あり |
Chat.CreateTalk.Talk.UtilizationControl | object | 〇 | トークの参加者情報 | |
Chat.CreateTalk.Talk.UtilizationControl.Disclosing | object | 〇 | トークの全体公開状況 | 全ユーザに対するトーク公開状態 |
Chat.CreateTalk.Talk.UtilizationControl.Disclosing.ContentsDisclosingID | uuid | 〇 | 全体公開ID | |
Chat.CreateTalk.Talk.UtilizationControl.Disclosing.ContentsDisclosingFlag | boolean | 〇 | 全体公開フラグ | 全ユーザに対して公開しているかどうか。現在は false 固定 |
Chat.CreateTalk.Talk.UtilizationControl. | object | 〇 | トークの参加メンバー情報 | |
Chat.CreateTalk.Talk.UtilizationControl.MemberDefinitionID | uuid | 〇 | メンバー定義ID | メンバー構成の登録ID |
Chat.CreateTalk.Talk.UtilizationControl.UserList | list[object] | 〇 | 参加ユーザリスト | 個人としての参加者リスト。空リストの場合あり |
Chat.CreateTalk.Talk.UtilizationControl.UserList[n].UserID | uuid | ※〇 | ユーザID | |
Chat.CreateTalk.Talk.UtilizationControl.UserList[n].LoginID | string | ※〇 | ログインID | |
Chat.CreateTalk.Talk.UtilizationControl.UserList[n].UserViewName | string | ※〇 | 表示名 | |
Chat.CreateTalk.Talk.UtilizationControl.UserList[n].UserIconFileURLPath | string | ユーザアイコン画像アクセス用URL(パス部) | ||
Chat.CreateTalk.Talk.UtilizationControl.UserList[n].InvitationLicensesFlag | boolean | 〇 | 招待ユーザフラグ | 外部招待機能によって参加者となっているユーザのフラグ。 |
Chat.CreateTalk.Talk.UtilizationControl.OrganizationList | list[object] | 〇 | 参加組織リスト | 組織単位での参加組織リスト。空リストの場合あり |
Chat.CreateTalk.Talk.UtilizationControl.OrganizationList[n].OrganizationID | uuid | ※〇 | 組織ID | |
Chat.CreateTalk.Talk.UtilizationControl.OrganizationList[n].OrganizationName | string | ※〇 | 組織名 | |
Chat.CreateTalk.Talk.UtilizationControl.OrganizationList[n].OrganizationIconFileURLPath | string | 組織アイコン画像アクセス用URL(パス部) |
EXAMPLE(JSONデータ)
{
"Chat" : {
"EventType" : "CreateTalk",
"CreateTalk" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Talk" : {
"TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"CategoryCode" : "TALK",
"AuthorID" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"CreateDateTime" : "2023-09-01T01:22:26.757Z",
"UpdateDateTime" : "2023-09-01T01:22:26.757Z",
"Properties" : {
"TalkName" : "トーク名",
"TalkDescription" : "トーク説明",
"TalkLabel" : "",
"TalkIconPath" : null,
},
"Permission" : {
"TalkMetaPermissionFlag" : true,
"TalkMemberPermissionFlag" : true,
"FreePostingFlag" : true,
},
"TalkTagList" : []
},
"UtilizationControl" : {
"Disclosing" : {
"ContentsDisclosingID" : "3ec8cbdd-d267-370b-f7d5-222943b279d1",
"ContentsDisclosingFlag" : false
},
"Member" : {
"MemberDefinitionID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"UserList" : [
{
"UserID" : "29fedb08-edd5-9cf0-2051-68b34d1d1b0d",
"LoginID" : "user1@test.co.jp",
"UserViewName" : "ユーザ1",
"UserIconFileURLPath":"/storage/User/file/88c6ce0f-0c22-4aa8-8db3-e830ed625c31",
"InvitationLicensesFlag" : false
},
{
"UserID" : "efc32d86-b575-3be9-a183-51fd36af9691",
"LoginID" : "user2@test.co.jp",
"UserViewName" : "ユーザ2",
"UserIconFileURLPath" : null,
"InvitationLicensesFlag" : true
},
],
"OrganizationList" : [
{
"OrganizationID" : "27e09c81-fa2a-9396-e291-b964b9551bc3",
"OrganizationName" : "組織1",
"OrganizationIconFileURLPath" : null
}
]
}
}
}
}
}
トークプロパティ更新(Chat.EventType : "UpdateTalkProperty")
項目 | 形式 | 必須 | 内容 | 備考 |
---|---|---|---|---|
Chat.UpdateTalkProperty | object | 〇 | トークプロパティ更新情報 | |
Chat.UpdateTalkProperty.EventUser | uuid | 〇 | イベント送信者のユーザID | |
Chat.UpdateTalkProperty.EventDateTime | date-time | 〇 | イベント発生時刻 | |
Chat.UpdateTalkProperty.Talk | object | 〇 | トーク情報 | |
Chat.UpdateTalkProperty.Talk.TalkID | uuid | 〇 | トークID | |
Chat.UpdateTalkProperty.Talk.CategoryCode | string | 〇 | トークのカテゴリコード | "TALK":通常トーク、"ANNOUNCE" 一斉同報。※現在は "TALK" のみ |
Chat.UpdateTalkProperty.Talk.AuthorID | uuid | 〇 | トーク作成ユーザのユーザID | |
Chat.UpdateTalkProperty.Talk.CreateDateTime | date-time | 〇 | トーク作成日時 | |
Chat.UpdateTalkProperty.Talk.UpdateDateTime | date-time | 〇 | トーク更新日時 | |
Chat.UpdateTalkProperty.Talk.Properties | object | 〇 | トークの基本情報 | |
Chat.UpdateTalkProperty.Talk.Properties.TalkName | string | 〇 | トーク名 | |
Chat.UpdateTalkProperty.Talk.Properties.TalkDescription | string | トーク説明文 | ||
Chat.UpdateTalkProperty.Talk.Properties.TalkLabel | string | トークラベル | カラーコード("#rrggbb" 形式)。未指定の場合は空文字となる | |
Chat.UpdateTalkProperty.Talk.Properties.TalkIconPath | string | トークアイコン画像アクセス用URL(パス部) |
EXAMPLE(JSONデータ)
{
"Chat" : {
"EventType" : "UpdateTalkProperty",
"UpdateTalkProperty" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z"
"Talk" : {
"TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"CategoryCode" : "TALK",
"AuthorID" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"CreateDateTime" : "2023-09-01T01:22:26.757Z",
"UpdateDateTime" : "2023-09-03T13:05:30.482Z",
"Properties" : {
"TalkName" : "トーク名",
"TalkDescription" : "トーク説明",
"TalkLabel" : "#ff0000",
"TalkIconPath" : "/storage/Chat/file/ceba3e55-0d73-4bde-85a4-74c9a996063c"
}
}
}
}
}
トークタグ更新(Chat.EventType : "UpdateTalkTag")
項目 | 形式 | 必須 | 内容 | 備考 |
---|---|---|---|---|
Chat.UpdateTalkTag | object | 〇 | トークタグ更新情報 | |
Chat.UpdateTalkTag.EventUser | uuid | 〇 | イベント送信者のユーザID | |
Chat.UpdateTalkTag.EventDateTime | date-time | 〇 | イベント発生時刻 | |
Chat.UpdateTalkTag.Talk | object | 〇 | トーク情報 | |
Chat.UpdateTalkTag.Talk.TalkID | uuid | 〇 | トークID | |
Chat.UpdateTalkTag.Talk.CategoryCode | string | 〇 | トークのカテゴリコード | "TALK":通常トーク、"ANNOUNCE" 一斉同報。※現在は "TALK" のみ |
Chat.UpdateTalkTag.Talk.AuthorID | uuid | 〇 | トーク作成ユーザのユーザID | |
Chat.UpdateTalkTag.Talk.CreateDateTime | date-time | 〇 | トーク作成日時 | |
Chat.UpdateTalkTag.Talk.UpdateDateTime | date-time | 〇 | トーク更新日時 | |
Chat.UpdateTalkTag.Talk.TalkTagList | list[strng] | 〇 | トークタグのリスト | トークに設定されているタグのリスト。空リストの場合あり |
EXAMPLE(JSONデータ)
{
"Chat" : {
"EventType" : "UpdateTalkTag",
"UpdateTalkTag" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Talk" : {
"TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"CategoryCode" : "TALK",
"AuthorID" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"CreateDateTime" : "2023-09-01T01:22:26.757Z",
"UpdateDateTime" : "2023-09-03T13:05:30.482Z",
"TalkTagList" : [ "tag1", "tag2" ]
}
}
}
}
トーク参加者変更(Chat.EventType : "UpdateTalkMember")
項目 | 形式 | 必須 | 内容 | 備考 |
---|---|---|---|---|
Chat.UpdateTalkMember | ||||
Chat.UpdateTalkMember.EventUser | uuid | 〇 | イベント送信者のユーザID | |
Chat.UpdateTalkMember.EventDateTime | date-time | 〇 | イベント発生時刻 | |
Chat.UpdateTalkMember.Talk | object | 〇 | トークの情報 | |
Chat.UpdateTalkMember.Talk.TalkID | uuid | 〇 | トークID | |
Chat.UpdateTalkMember.Talk.CategoryCode | string | 〇 | トークのカテゴリコード | "TALK":通常トーク、"ANNOUNCE" 一斉同報。※現在は "TALK" のみ |
Chat.UpdateTalkMember.Talk.AuthorID | uuid | 〇 | トーク作成ユーザのユーザID | |
Chat.UpdateTalkMember.Talk.CreateDateTime | date-time | 〇 | トーク作成日時 | |
Chat.UpdateTalkMember.Talk.UpdateDateTime | date-time | 〇 | トーク更新日時 | |
Chat.UpdateTalkMember.UtilizationControl. | object | 〇 | トークの参加者情報 | |
Chat.UpdateTalkMember.UtilizationControl.Disclosing | object | 〇 | トークの全体公開状況 | 全ユーザに対するトーク公開状態 |
Chat.UpdateTalkMember.UtilizationControl.Disclosing.ContentsDisclosingID | uuid | 〇 | 全体公開ID | |
Chat.UpdateTalkMember.UtilizationControl.Disclosing.ContentsDisclosingFlag | boolean | 〇 | 全体公開フラグ | 全ユーザに対して公開しているかどうか。現在は false 固定 |
Chat.UpdateTalkMember.UtilizationControl.Member | object | 〇 | トークの参加メンバー情報 | |
Chat.UpdateTalkMember.UtilizationControl.Member.MemberDefinitionID | uuid | 〇 | メンバー定義ID | メンバー構成の登録ID |
Chat.UpdateTalkMember.UtilizationControl.Member.UserList | list[object] | 〇 | 参加ユーザリスト | 個人としての参加者リスト。空リストの場合あり |
Chat.UpdateTalkMember.UtilizationControl.Member.UserList[n].UserID | uuid | ※〇 | ユーザID | |
Chat.UpdateTalkMember.UtilizationControl.Member.UserList[n].LoginID | string | ※〇 | ログインID | |
Chat.UpdateTalkMember.UtilizationControl.Member.UserList[n].UserViewName | string | ※〇 | 表示名 | |
Chat.UpdateTalkMember.UtilizationControl.Member.UserList[n].UserIconFileURLPath | string | ユーザアイコン画像アクセス用URL(パス部) | ||
Chat.UpdateTalkMember.UtilizationControl.Member.UserList[n].InvitationLicensesFlag | boolean | 〇 | 招待ユーザフラグ | 外部招待機能によって参加者となっているユーザのフラグ。 |
Chat.UpdateTalkMember.UtilizationControl.Member.OrganizationList | list[object] | 〇 | 参加組織リスト | 組織単位での参加組織リスト。空リストの場合あり |
Chat.UpdateTalkMember.UtilizationControl.Member.OrganizationList[n].OrganizationID | uuid | ※〇 | 組織ID | |
Chat.UpdateTalkMember.UtilizationControl.Member.OrganizationList[n].OrganizationName | string | ※〇 | 組織名 | |
Chat.UpdateTalkMember.UtilizationControl.Member.OrganizationList[n].OrganizationIconFileURLPath | string | 組織アイコン画像アクセス用URL(パス部) |
EXAMPLE(JSONデータ)
{
"Chat" : {
"EventType" : "UpdateTalkMember",
"UpdateTalkMember" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Talk" : {
"TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"CategoryCode" : "TALK",
"AuthorID" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"CreateDateTime" : "2023-09-01T01:22:26.757Z",
"UpdateDateTime" : "2023-09-03T13:05:30.482Z"
},
"UtilizationControl" : {
"Disclosing" : {
"ContentsDisclosingID" : "3ec8cbdd-d267-370b-f7d5-222943b279d1",
"ContentsDisclosingFlag" : false
},
"Member" : {
"MemberDefinitionID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"UserList" : [
{
"UserID" : "29fedb08-edd5-9cf0-2051-68b34d1d1b0d",
"LoginID" : "user1@test.co.jp",
"UserViewName" : "ユーザ1",
"UserIconFileURLPath":"/storage/User/file/47a4024f-c182-479d-8ef3-c6a37e945154",
"InvitationLicensesFlag" : false
},
{
"UserID" : "efc32d86-b575-3be9-a183-51fd36af9691",
"LoginID" : "user2@test.co.jp",
"UserViewName" : "ユーザ2",
"UserIconFileURLPath" : null,
"InvitationLicensesFlag" : true
},
],
"OrganizationList" : [
{
"OrganizationID" : "27e09c81-fa2a-9396-e291-b964b9551bc3",
"OrganizationName" : "組織1",
"OrganizationIconFileURLPath" : null
}
]
}
}
}
}
}
トークルーム削除(Chat.EventType : "DeleteTalk")
項目 | 形式 | 必須 | 内容 | 備考 |
---|---|---|---|---|
Chat.DeleteTalk | ||||
Chat.DeleteTalk.EventUser | uuid | 〇 | イベント送信者のユーザID | |
Chat.DeleteTalk.EventDateTime | date-time | 〇 | イベント発生時刻 | |
Chat.DeleteTalk.Talk | object | 〇 | トークの情報 | |
Chat.DeleteTalk.Talk.TalkID | uuid | 〇 | ||
Chat.DeleteTalk.Talk.CategoryCode | string | 〇 | "TALK":通常トーク、"ANNOUNCE" 一斉同報。※現在は "TALK" のみ | |
Chat.DeleteTalk.Talk.AuthorID | uuid | 〇 | ||
Chat.DeleteTalk.Talk.CreateDateTime | date-time | 〇 | ||
Chat.DeleteTalk.Talk.UpdateDateTime | date-time | 〇 |
EXAMPLE(JSONデータ)
{
"Chat" : {
"EventType" : "DeleteTalk",
"DeleteTalk" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Talk" : {
"TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"CategoryCode" : "TALK",
"AuthorID" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"CreateDateTime" : "2023-09-01T01:22:26.757Z",
"UpdateDateTime" : "2023-09-03T13:05:30.482Z"
}
}
}
}
各種メッセージ投稿(Chat.EventType : "PostMessage")
項目 | 形式 | 必須 | 内容 | 備考 |
---|---|---|---|---|
Chat.PostMessage | ||||
Chat.PostMessage.EventUser | uuid | 〇 | イベント送信者のユーザID | |
Chat.PostMessage.EventDateTime | date-time | 〇 | イベント発生時刻 | |
Chat.PostMessage.Message | object | 〇 | 投稿されたメッセージの情報 | |
Chat.PostMessage.Message.TalkID | uuid | 〇 | メッセージが投稿されたトークのID | |
Chat.PostMessage.Message.MessageID | uuid | 〇 | 投稿されたメッセージのID | |
Chat.PostMessage.Message.User | object | 〇 | メッセージ投稿者の情報 | |
Chat.PostMessage.Message.User.UserID | uuid | 〇 | ユーザID | |
Chat.PostMessage.Message.User.LoginID | string | 〇 | ログインID | |
Chat.PostMessage.Message.User.UserViewName | string | 〇 | 表示名 | |
Chat.PostMessage.Message.User.UserIconFileURLPath | string | ユーザアイコン画像アクセス用URL(パス部) | ||
Chat.PostMessage.Message.MentionList. | list[object] | メッセージに設定されたメンションのリスト(※テキストメッセージの場合のみ) | ||
Chat.PostMessage.Message.MentionList.[n].UserID | uuid | ※〇 | ユーザID | |
Chat.PostMessage.Message.MentionList.[n].LoginID | string | ※〇 | ログインID | |
Chat.PostMessage.Message.MentionList.[n].UserViewName | string | ※〇 | 表示名 | |
Chat.PostMessage.Message.MentionList.[n].UserIconFileURLPath | string | ユーザアイコン画像アクセス用URL(パス部) | ||
Chat.PostMessage.Message.CreateDateTime | date-time | 〇 | メッセージが投稿された時刻情報 | |
Chat.PostMessage.Message.MessageType | string | 〇 | メッセージの種別 | メッセージ種別ごとに保持するメッセージ情報が異なる。 以下のいずれかの値 "PLAIN" : テキストメッセージ "IMAGE" : 画像メッセージ "MOVIE" : 動画メッセージ "ATTACHED" : 添付ファイルメッセージ "STAMP" : スタンプメッセージ "LOCATION" : 位置情報メッセージ "EVNVIDEOCHAT" : ビデオ通話メッセージ |
Chat.PostMessage.Message.Plain | object | メッセージ種別 "PLAIN" の場合のメッセージ情報 | ||
Chat.PostMessage.Message.Plain.Text | string | ※〇 | メッセージ本文テキスト | |
Chat.PostMessage.Message.Plain.OgpLinkList | list[string] | 〇 | メッセージ本文に含まれるOGPリンクのリスト。空リストの場合あり | |
Chat.PostMessage.Message.Image | object | メッセージ種別 "IMAGE" の場合のメッセージ情報 | ||
Chat.PostMessage.Message.Image.FileName | string | ※〇 | ファイル名 | |
Chat.PostMessage.Message.Image.FileSize | integer | ※〇 | ファイルサイズ | |
Chat.PostMessage.Message.Image.FileInfoID | uuid | ※〇 | ファイルID | |
Chat.PostMessage.Message.Image.FileUriPath | string | ※〇 | ファイルアクセス用URL(パス部) | ファイルアクセス用URL(パス部) |
Chat.PostMessage.Message.Image.ThumbnailFileUriPath | string | ※〇 | サムネイルファイルアクセス用URL(パス部) | |
Chat.PostMessage.Message.Movie | object | メッセージ種別 "MOVIE" の場合のメッセージ情報 | ||
Chat.PostMessage.Message.Movie.FileName | string | ※〇 | ファイル名 | |
Chat.PostMessage.Message.Movie.FileSize | integer | ※〇 | ファイルサイズ | |
Chat.PostMessage.Message.Movie.FileInfoID | uuid | ※〇 | ファイルID | |
Chat.PostMessage.Message.Movie.FileUriPath | string | ※〇 | ファイルアクセス用URL(パス部) | |
Chat.PostMessage.Message.Movie.ThumbnailFileUriPath | string | サムネイルファイルアクセス用URL(パス部) | ||
Chat.PostMessage.Message.Attached | object | メッセージ種別 "ATTACHED" の場合のメッセージ情報 | ||
Chat.PostMessage.Message.Attached.FileName | string | ※〇 | ファイル名 | |
Chat.PostMessage.Message.Attached.FileSize | integer | ※〇 | ファイルサイズ | |
Chat.PostMessage.Message.Attached.FileInfoID | uuid | ※〇 | ファイルID | |
Chat.PostMessage.Message.Attached.FileUriPath | string | ※〇 | ファイルアクセス用URL(パス部) | |
Chat.PostMessage.Message.Attached.ThumbnailFileUriPath | string | サムネイルファイルアクセス用URL(パス部) | ||
Chat.PostMessage.Message.Stamp | object | メッセージ種別 "STAMP" の場合のメッセージ情報 | ||
Chat.PostMessage.Message.Stamp.StampInfo | object | ※〇 | スタンプ情報 | |
Chat.PostMessage.Message.Stamp.StampInfo.PackageID | uuid | ※〇 | スタンプパッケージID | |
Chat.PostMessage.Message.Stamp.StampInfo.StampID | uuid | ※〇 | スタンプID | |
Chat.PostMessage.Message.Stamp.FileInfo | object | ※〇 | スタンプ画像ファイル情報 | |
Chat.PostMessage.Message.Stamp.FileInfo.FileInfoID | uuid | ※〇 | スタンプファイルID | |
Chat.PostMessage.Message.Stamp.FileInfo.FileUriPath | string | ※〇 | スタンプファイルアクセス用URL(パス部) | スタンプファイルアクセス用URL(パス部) |
Chat.PostMessage.Message.Location | object | メッセージ種別 "LOCATION" の場合のメッセージ情報 | ||
Chat.PostMessage.Message.Location.Coordinates | object | ※〇 | 座標情報 | |
Chat.PostMessage.Message.Location.Coordinates.Latitude | float | ※〇 | 緯度 | |
Chat.PostMessage.Message.Location.Coordinates.Longitude | float | ※〇 | 経度 | |
Chat.PostMessage.Message.Location.Coordinates.Altitude | float | ※〇 | 高度 | |
Chat.PostMessage.Message.Location.Coordinates.Accuracy | float | ※〇 | 精度 | |
Chat.PostMessage.Message.Location.FileInfo | object | 地図画像 | ||
Chat.PostMessage.Message.Location.FileInfo.FileInfoID | uuid | ※〇 | 画像ファイルID | |
Chat.PostMessage.Message.Location.FileInfo.FileUriPath | string | ※〇 | 画像アクセス用 URL(パス部) | |
Chat.PostMessage.Message.Location.Address | string | ※〇 | 住所テキスト | |
Chat.PostMessage.Message.EvnVideoChat | object | メッセージ種別が "EVNVIDEOCHAT" の場合のメッセージ情報 | ||
Chat.PostMessage.Message.EvnVideoChat.RoomURLPath | string | ※〇 | ビデオ通話参加用 URL(パス部) | |
Chat.PostMessage.ReplyMessage | object | リプライ元メッセージ情報 | 本件メッセージが別のメッセージへの返信である場合にのみ値が入る。 データ構造は Chat.PostMessage.Message.Message と同様となる |
EXAMPLE(JSONデータ): メッセージタイプ PLAIN
{
"Chat" : {
"EventType" : "PostMessage",
"PostMessage" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Message" : {
"TalkID" : "TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"MessageID" : "ffa88c8f-f973-6e29-f82f-2d220924ef4e",
"User" : {
"UserID" : "9ef4f785-fc94-41b1-67c6-e79c15c5c9c2",
"LoginID" : "user3@sample.co.jp",
"UserViewName" : "ユーザ3",
"UserIconFileURLPath" : "/storage/User/file/47a4024f-c182-479d-8ef3-c6a37e945154"
},
"MentionList" : [
{
"UserID" : "29fedb08-edd5-9cf0-2051-68b34d1d1b0d",
"LoginID" : "user1@test.co.jp",
"UserViewName" : "ユーザ1",
"UserIconFileURLPath" : "/storage/User/file/d0368450-b766-7747-b7e1-9f1ed39c08ef",
"InvitationLicensesFlag" : false
},
{
"UserID" : "efc32d86-b575-3be9-a183-51fd36af9691",
"LoginID" : "user2@test.co.jp",
"UserViewName" : "ユーザ2",
"UserIconFileURLPath" : null,
"InvitationLicensesFlag" : true
},
],
"CreateDateTime" : "2023-09-03T15:45:12.383Z",
"MessageType" : "PLAIN",
"Plain" : {
"Text" : "テストメッセージ\nhttps://sample.discus.co.jp/news/2310/20/news070.html\nです。",
"OgpLinkList" : ["https://sample.discus.co.jp/news/2310/20/news070.html"]
}
},
"ReplyMessage" : null
}
}
}
EXAMPLE(JSONデータ): メッセージタイプ IMAGE
{
"Chat" : {
"EventType" : "PostMessage",
"PostMessage" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Message" : {
"TalkID" : "TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"MessageID" : "ffa88c8f-f973-6e29-f82f-2d220924ef4e",
"User" : {
"UserID" : "9ef4f785-fc94-41b1-67c6-e79c15c5c9c2",
"LoginID" : "user3@sample.co.jp",
"UserViewName" : "ユーザ3",
"UserIconFileURLPath" : "/storage/User/file/47a4024f-c182-479d-8ef3-c6a37e945154"
},
"MentionList" : [],
"CreateDateTime" : "2023-09-03T15:45:12.383Z",
"MessageType" : "IMAGE",
"Image" : {
"FileName" : "sample.png",
"FileSize" : 290667,
"FileInfoID" : "2195e585-4f85-ea56-3fd1-6ff9326f68c3",
"FileUriPath" : "/storage/Chat/file/3200b796-305d-45fd-b46c-eaf99ce52e19",
"ThumbnailFileUriPath" : "/storage/Chat/file/4bcf3e7b-6273-4032-a0d2-d492ed77e820"
}
},
"ReplyMessage" : null
}
}
}
EXAMPLE(JSONデータ): メッセージタイプ MOVIE
{
"Chat" : {
"EventType" : "PostMessage",
"PostMessage" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Message" : {
"TalkID" : "TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"MessageID" : "ffa88c8f-f973-6e29-f82f-2d220924ef4e",
"User" : {
"UserID" : "9ef4f785-fc94-41b1-67c6-e79c15c5c9c2",
"LoginID" : "user3@sample.co.jp",
"UserViewName" : "ユーザ3",
"UserIconFileURLPath" : "/storage/User/file/47a4024f-c182-479d-8ef3-c6a37e945154"
},
"MentionList" : [],
"CreateDateTime" : "2023-09-03T15:45:12.383Z",
"MessageType" : "MOVIE",
"Movie" : {
"FileName" : "sample.mp4",
"FileSize" : 106561,
"FileInfoID" : "337fc26c-4a5c-43fa-be59-7b09a74aa97f",
"FileUriPath" : "/storage/Chat/file/337fc26c-4a5c-43fa-be59-7b09a74aa97f",
"ThumbnailFileUriPath" : "/storage/Chat/file/b727c38b-d853-4f51-83f2-4782e26e78c8",
}
},
"ReplyMessage" : null
}
}
}
EXAMPLE(JSONデータ): メッセージタイプ ATTACHED
{
"Chat" : {
"EventType" : "PostMessage",
"PostMessage" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Message" : {
"TalkID" : "TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"MessageID" : "ffa88c8f-f973-6e29-f82f-2d220924ef4e",
"User" : {
"UserID" : "9ef4f785-fc94-41b1-67c6-e79c15c5c9c2",
"LoginID" : "user3@sample.co.jp",
"UserViewName" : "ユーザ3",
"UserIconFileURLPath" : "/storage/User/file/47a4024f-c182-479d-8ef3-c6a37e945154"
},
"MentionList" : [],
"CreateDateTime" : "2023-09-03T15:45:12.383Z",
"MessageType":"ATTACHED",
"Attached":{
"FileName" : "サンプル.xlsx",
"FileSize" : 1175504,
"FileInfoID" : "560804c3-de1b-4a3e-b12e-a8f0b5cf6d32",
"FileUriPath" : "/storage/Chat/file/560804c3-de1b-4a3e-b12e-a8f0b5cf6d32",
"ThumbnailFileUriPath" : null
},
},
"ReplyMessage" : null
}
}
}
EXAMPLE(JSONデータ): メッセージタイプ STAMP
{
"Chat" : {
"EventType" : "PostMessage",
"PostMessage" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Message" : {
"TalkID" : "TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"MessageID" : "ffa88c8f-f973-6e29-f82f-2d220924ef4e",
"User" : {
"UserID" : "9ef4f785-fc94-41b1-67c6-e79c15c5c9c2",
"LoginID" : "user3@sample.co.jp",
"UserViewName" : "ユーザ3",
"UserIconFileURLPath" : "/storage/User/file/47a4024f-c182-479d-8ef3-c6a37e945154"
},
"MentionList" : [],
"CreateDateTime" : "2023-09-03T15:45:12.383Z",
"MessageType" : "STAMP",
"Stamp" : {
"StampInfo" : {
"StampID" : "d3f22cf9-be5c-4d14-95ce-7cc76cc9535d",
"PackageID":"1379635b-b483-42c1-b8db-13a60b98543f"
},
"FileInfo" : {
"FileInfoID" : "296b39ea-fbad-429b-a669-8218490bb2f2",
"FileUriPath" : "/storage/Chat/file/296b39ea-fbad-429b-a669-8218490bb2f2"
}
}
},
"ReplyMessage" : null
}
}
}
EXAMPLE(JSONデータ): メッセージタイプ LOCATION
{
"Chat" : {
"EventType" : "PostMessage",
"PostMessage" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Message" : {
"TalkID" : "TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"MessageID" : "ffa88c8f-f973-6e29-f82f-2d220924ef4e",
"User" : {
"UserID" : "9ef4f785-fc94-41b1-67c6-e79c15c5c9c2",
"LoginID" : "user3@sample.co.jp",
"UserViewName" : "ユーザ3",
"UserIconFileURLPath" : "/storage/User/file/47a4024f-c182-479d-8ef3-c6a37e945154"
},
"MentionList" : [],
"CreateDateTime" : "2023-09-03T15:45:12.383Z",
"MessageType" : "LOCATION",
"Location" : {
"Coordinates" : {
"Latitude" : 35.66334900706211,
"Longitude" : 139.74633484551762,
"Altitude" : 0.0,
"Accuracy" : 0.0
},
"FileInfo" : {
"FileInfoID" : "560804c3-de1b-4a3e-b12e-a8f0b5cf6d32",
"FileUriPath" : "/storage/Chat/file/560804c3-de1b-4a3e-b12e-a8f0b5cf6d32"
},
"Address" : "〒105-0001 東京都港区虎ノ門三丁目18番19号 UD神谷町ビル7階"
}
},
"ReplyMessage" : null
}
}
}
EXAMPLE(JSONデータ): メッセージタイプ EVNVIDEOCHAT
{
"Chat" : {
"EventType" : "PostMessage",
"PostMessage" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Message" : {
"TalkID" : "TalkID" : "3981e1f1-32b7-ab5e-408e-0048f071d2dc",
"MessageID" : "ffa88c8f-f973-6e29-f82f-2d220924ef4e",
"User" : {
"UserID" : "9ef4f785-fc94-41b1-67c6-e79c15c5c9c2",
"LoginID" : "user3@sample.co.jp",
"UserViewName" : "ユーザ3",
"UserIconFileURLPath" : "/storage/User/file/47a4024f-c182-479d-8ef3-c6a37e945154"
},
"MentionList" : [],
"CreateDateTime" : "2023-09-03T15:45:12.383Z",
"MessageType" : "EVNVIDEOCHAT"
"EvnVideoChat" : {
"RoomURLPath": "/ksopen/chat/room/f26f8931-a51a-46fe-bfcc-b6a9f030a770"
}
},
"ReplyMessage" : null
}
}
}
各種メッセージ削除(Chat.EventType : "DeleteMessage")
項目 | 形式 | 必須 | 内容 |
---|---|---|---|
Chat.DeleteMessage | |||
Chat.DeleteMessage.EventUser | uuid | 〇 | イベント送信者のユーザID |
Chat.DeleteMessage.EventDateTime | date-time | 〇 | イベント発生時刻 |
Chat.DeleteMessage.Message | object | 〇 | 削除対象メッセージ情報 |
Chat.DeleteMessage.Message.TalkID | uuid | 〇 | トークID |
Chat.DeleteMessage.Message.MessageID | uuid | 〇 | メッセージID |
EXAMPLE(JSONデータ)
{
"Chat" : {
"EventType" : "DeleteMessage",
"DeleteMessage" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Message" : {
"TalkID" : "a2e8e910-cbb3-062a-bc23-7c9e2ff653eb",
"MessageID" : "e6ac65e5-9201-c28d-aab2-9fecdbddc6ae",
}
}
}
}
リアクション登録(Chat.EventType : "AddReaction")
項目 | 形式 | 必須 | 内容 | 備考 |
---|---|---|---|---|
Chat.AddReaction | ||||
Chat.AddReaction.EventUser | uuid | 〇 | イベント送信者のユーザID | |
Chat.AddReaction.EventDateTime | date-time | 〇 | イベント発生時刻 | |
Chat.AddReaction.Reaction | object | 〇 | 登録リアクション情報 | |
Chat.AddReaction.Reaction.TalkID | uuid | 〇 | リアクション対象メッセージのトークID | |
Chat.AddReaction.Reaction.MessageID | uuid | 〇 | リアクション対象メッセージのID | |
Chat.AddReaction.Reaction.User | object | 〇 | リアクションを行ったユーザ情報 | |
Chat.AddReaction.Reaction.User.UserID | uuid | 〇 | ||
Chat.AddReaction.Reaction.User.LoginID | string | 〇 | ||
Chat.AddReaction.Reaction.User.UserViewName | string | 〇 | ||
Chat.AddReaction.Reaction.User.UserIconFileURLPath | string | ユーザアイコン画像アクセス用URL(パス部) | ||
Chat.AddReaction.Reaction.Reaction | string | 〇 | リアクション絵文字情報 |
Unicode のコードポイント文字列で表現。複数のコードポイントで一文字を構成する絵文字の場合、コードポイント文字列を "-" で結合する。 例) |
EXAMPLE(JSONデータ)
{
"Chat" : {
"EventType" : "AddReaction",
"AddReaction" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Reaction" : {
"TalkID":"19bb4640-b94f-473a-aea8-f07c2dc86af7",
"MessageID":"b572ed2b-4d90-4c17-81de-bb48901a3884",
"User" : {
"UserID" : "9ef4f785-fc94-41b1-67c6-e79c15c5c9c2",
"LoginID" : "user3@sample.co.jp",
"UserViewName" : "ユーザ3",
"UserIconFileURLPath" : "/storage/User/file/47a4024f-c182-479d-8ef3-c6a37e945154"
},
"Reaction" : "1f646-200d-2640-fe0f"
}
}
}
}
リアクション削除(Chat.EventType : "RemoveReaction")
項目 | 形式 | 必須 | 内容 | 備考 |
---|---|---|---|---|
Chat.RemoveReaction | ||||
Chat.RemoveReaction.EventUser | uuid | 〇 | イベント送信者のユーザID | |
Chat.RemoveReaction.EventDateTime | date-time | 〇 | イベント発生時刻 | |
Chat.RemoveReaction.Reaction | object | 〇 | 削除リアクション情報 | |
Chat.RemoveReaction.Reaction.TalkID | uuid | 〇 | リアクション対象メッセージのトークID | |
Chat.RemoveReaction.Reaction.MessageID | uuid | 〇 | リアクション対象メッセージのID | |
Chat.RemoveReaction.Reaction.User | object | 〇 | リアクションを行ったユーザ情報 | |
Chat.RemoveReaction.Reaction.User.UserID | uuid | 〇 | ||
Chat.RemoveReaction.Reaction.User.LoginID | string | 〇 | ||
Chat.RemoveReaction.Reaction.User.UserViewName | string | 〇 | ||
Chat.RemoveReaction.Reaction.User.UserIconFileURLPath | string | ユーザアイコン画像アクセス用URL(パス部) | ||
Chat.RemoveReaction.Reaction.Reaction | string | 〇 | リアクション絵文字情報 | Unicode のコードポイント文字列で表現。 複数のコードポイントで一文字を構成する絵文字の場合、 コードポイント文字列を "-" で結合する。 例) リアクション絵文字 :🙆♀️ コードポイント文字列:"1f646-200d-2640-fe0f" |
EXAMPLE(JSONデータ)
{
"Chat" : {
"EventType" : "RemoveReaction",
"RemoveReaction" : {
"EventUser" : "f451bbbe-b44b-4980-8745-a05df5c9ca21",
"EventDateTime" : "2023-09-01T01:22:26.757Z",
"Reaction" : {
"TalkID":"19bb4640-b94f-473a-aea8-f07c2dc86af7",
"MessageID":"b572ed2b-4d90-4c17-81de-bb48901a3884",
"User" : {
"UserID" : "9ef4f785-fc94-41b1-67c6-e79c15c5c9c2",
"LoginID" : "user3@sample.co.jp",
"UserViewName" : "ユーザ3",
"UserIconFileURLPath" : "/storage/User/file/47a4024f-c182-479d-8ef3-c6a37e945154"
},
"Reaction" : "1f646-200d-2640-fe0f"
}
}
}
}