DEBUG用エリア 

記事テンプレート

Webhookについて

Webhookとは

事前にユーザ様にて設定していただいた URL に対して、チャット上で発生したメッセージやイベントを
HTTP リクエストとして送信する機能です。。各ユーザ毎に1つのWebhookを設定することができ、該当ユーザが参加するトーク上で発生したメッセージやイベント(トークの作成やメンバー変更など)の情報が指定URLに送信されます。

 

【この記事の内容】

 

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" : ビデオ通話メッセージ
        "SYSPLAIN" : システムメッセージ
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 のコードポイント文字列で表現。複数のコードポイントで一文字を構成する絵文字の場合、コードポイント文字列を "-" で結合する。

例)
リアクション絵文字 :🙆‍♀️
コードポイント文字列:"1f646-200d-2640-fe0f" 

 

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"
}
}
}
}

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています