MessageHook - TakayukiHoshi1984/DeviceConnect-Spec GitHub Wiki

概要

メッセージ送受信の機能を提供するAPI。

目次

API 概要
GET /gotapi/messageHook/channel チャンネル一覧を取得する。
GET /gotapi/messageHook/message 直近に受信したメッセージの一覧を取得する。
POST /gotapi/messageHook/message メッセージを投稿する。
GET /gotapi/messageHook/onMessage 直近に受信したメッセージの一覧を取得する。
PUT /gotapi/messageHook/onMessage 直近に受信したメッセージ取得イベントを開始する。
DELETE /gotapi/messageHook/onMessage 直近に受信したメッセージ取得イベントを停止する。

種別

one-shot

概要

チャンネル一覧を取得する。

公開権限が設定されており取得できないチャンネルについて、 取得するかどうかはプラグインの仕様に依存する。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス

レスポンス

論理名 物理名 データ型 必須 説明
処理結果 result integer Yes 0:正常応答
0以外:異常応答
システム名 product string Yes DeviceConnectシステムの名前。
システムバージョン version string Yes DeviceConnectシステムのバージョン名。
署名 hmac string No レスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。
チャンネル channels array(object) Yes チャンネルを格納する配列。
チャンネル識別子 id string Yes チャンネルを識別するID。
チャンネル名 name string Yes チャンネルの名前。
チャンネルタイプ type string Yes チャンネルのタイプ
・facebook
・line
・slack
など

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0",
  "channels" : [ {
    "id" : "xxxxxxxx",
    "name" : "名前",
    "type" : "slack"
  }, {
    "id" : "xxxxxxxx",
    "name" : "名前",
    "type" : "slack"
  } ]
}

種別

one-shot

概要

直近に受信したメッセージの一覧を取得する。

公開権限が設定されており取得できないメッセージについて、 取得するかどうかはプラグインの仕様に依存する。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス

レスポンス

論理名 物理名 データ型 必須 説明
処理結果 result integer Yes 0:正常応答
0以外:異常応答
システム名 product string Yes DeviceConnectシステムの名前。
システムバージョン version string Yes DeviceConnectシステムのバージョン名。
署名 hmac string No レスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。
メッセージ messages array(object) Yes メッセージ情報。
メッセンジャータイプ messagerType string Yes メッセンジャーのタイプ
・facebook
・line
・slack
など。
送信元ID from long Yes 送信元を識別するID。
チャンネルID channelId string Yes チャンネルを識別するID。
投稿した時間 timeStamp long Yes
投稿した時間の文字列 timeStampString dateTime Yes 投稿した時間をRFC3339「yyyy-MM-dd''T''HH:mm:ssZZZZZ」の形式で返す。
チャンネル名 text string No チャンネルの名前。
リソースURI resource string No 送られてきたメッセージのリソースへのURI。
メッセージが指定されていない時は省略されない。
MimeType mimeType string No リソースのタイプ。
メッセージが指定されていない時は省略されない。
メッセージタイプ messageType string No normal, direct, mention の文字列 (複数になる場合がある「direct,mention」など)
・normal: 通常メッセージ
・direct: ダイレクトメッセージ
・mention: メンション付きメッセージ
#メンション付きのメッセージのtextはメンション部分が削除されます。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0",
  "messages" : [ {
    "messengerType" : "facebook",
    "from" : "abcdef",
    "timeStamp" : 1234567890,
    "timeStampString" : "2015-05-17T10:02:20+09:00",
    "channelId" : "1",
    "text" : "ライトをつけて",
    "resource" : "http://www.gclue.io/a.png",
    "mimeType" : "image/png",
    "messageType" : "direct"
  } ]
}

種別

one-shot

概要

メッセージを投稿する。

権限が設定されており投稿できないメッセージについて、 投稿できるようにするかどうかはプラグインの仕様に依存する。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス
channelId string Yes チャンネルID。メッセージの投稿先チャンネルID。
text string No テキスト。送信する文言。
リソースURIが指定されていない時は省略できない。
resource string No リソースURI。画像、音声、映像などのリソースへのURI。
テキストが指定されていない時は省略できない。
mimeType string No MimeType。送信するリソースのタイプ。
リソースURIが指定されている時は省略できない。

レスポンス

論理名 物理名 データ型 必須 説明
処理結果 result integer Yes 0:正常応答
0以外:異常応答
システム名 product string Yes DeviceConnectシステムの名前。
システムバージョン version string Yes DeviceConnectシステムのバージョン名。
署名 hmac string No レスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0"
}

種別

one-shot

概要

直近に受信したメッセージの一覧を取得する。

プラグイン側でキャッシュしている最新のイベントメッセージを1つ取得する。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス

レスポンス

論理名 物理名 データ型 必須 説明
処理結果 result integer Yes 0:正常応答
0以外:異常応答
システム名 product string Yes DeviceConnectシステムの名前。
システムバージョン version string Yes DeviceConnectシステムのバージョン名。
署名 hmac string No レスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。
メッセージ message object Yes
メッセンジャータイプ messagerType string Yes メッセンジャーのタイプ
・facebook
・line
・slack
など。
送信元ID from long Yes 送信元を識別するID。
チャンネルID channelId string Yes チャンネルを識別するID。
投稿した時間 timeStamp long Yes
投稿した時間の文字列 timeStampString dateTime Yes 投稿した時間をRFC3339「yyyy-MM-dd''T''HH:mm:ssZZZZZ」の形式で返す。
チャンネル名 text string No チャンネルの名前。
リソースURI resource string No 送られてきたメッセージのリソースへのURI。
メッセージが指定されていない時は省略されない。
MimeType mimeType string No リソースのタイプ。
メッセージが指定されていない時は省略されない。
メッセージタイプ messageType string No normal, direct, mention の文字列 (複数になる場合がある「direct, mention」など)
・normal : 通常メッセージ
・direct : ダイレクトメッセージ
・mention: メンション付きメッセージ
#メンション付きのメッセージのtextはメンション部分が削除されます。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0",
  "message" : {
    "messengerType" : "xxxx",
    "from" : "abcdef",
    "timeStamp" : 1234567890,
    "timeStampString" : "2015-05-17T10:02:20+09:00",
    "channelId" : "1",
    "text" : "ライトをつけて",
    "resource" : "http://org.deviceconnect/test.png",
    "mimeType" : "image/png",
    "messageType" : "direct"
  }
}

種別

event

概要

直近に受信したメッセージ取得イベントを開始する。

スマートデバイスでサポートしていないパラメータがある場合には、 そのパラメータを省略する。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス
interval long No デバイスプラグインがイベントを送信する間隔。

レスポンス

論理名 物理名 データ型 必須 説明
処理結果 result integer Yes 0:正常応答
0以外:異常応答
システム名 product string Yes DeviceConnectシステムの名前。
システムバージョン version string Yes DeviceConnectシステムのバージョン名。
署名 hmac string No レスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0"
}

イベント

論理名 物理名 データ型 必須 説明
サービスID serviceId string Yes イベントを送信したサービスのID
プロファイル名 profile string Yes プロファイル名。
インターフェース名 interface string Yes インターフェース名。
アトリビュート名 attribute string Yes アトリビュート名。
メッセージ message object Yes
メッセンジャータイプ messagerType string Yes メッセンジャーのタイプ
・facebook
・line
・slack
など。
送信元ID from long Yes 送信元を識別するID。
チャンネルID channelId string Yes チャンネルを識別するID。
投稿した時間 timeStamp long Yes
投稿した時間の文字列 timeStampString dateTime Yes 投稿した時間をRFC3339「yyyy-MM-dd''T''HH:mm:ssZZZZZ」の形式で返す。
チャンネル名 text string No チャンネルの名前。
リソースURI resource string No 送られてきたメッセージのリソースへのURI。
メッセージが指定されていない時は省略されない。
MimeType mimeType string No リソースのタイプ。
メッセージが指定されていない時は省略されない。
メッセージタイプ messageType string No normal, direct, mention の文字列 (複数になる場合がある「direct, mention」など)
・normal : 通常メッセージ
・direct : ダイレクトメッセージ
・mention: メンション付きメッセージ
#メンション付きのメッセージのtextはメンション部分が削除されます。

イベントサンプル

{
  "serviceId" : "Host.exampleId.localhost.deviceconnect.org",
  "profile" : "messageHook",
  "attribute" : "onMessage",
  "message" : {
    "messengerType" : "xxxx",
    "from" : "abcdef",
    "timeStamp" : 1234567890,
    "timeStampString" : "2015-05-17T10:02:20+09:00",
    "channelId" : "1",
    "text" : "ライトをつけて",
    "resource" : "http://org.deviceconnect/test.png",
    "mimeType" : "image/png",
    "messageType" : "direct"
  }
}

種別

event

概要

直近に受信したメッセージ取得イベントを停止する。

スマートデバイスでサポートしていないパラメータがある場合には、 そのパラメータを省略する。

リクエスト

物理名 データ型 必須 説明
serviceId string Yes サービスID。取得対象スマートデバイス

レスポンス

論理名 物理名 データ型 必須 説明
処理結果 result integer Yes 0:正常応答
0以外:異常応答
システム名 product string Yes DeviceConnectシステムの名前。
システムバージョン version string Yes DeviceConnectシステムのバージョン名。
署名 hmac string No レスポンスに対する署名。
アプリケーション側から事前にHMACキーを共有されていた場合は必須。

レスポンスサンプル

{
  "result" : 0,
  "product" : "Example System",
  "version" : "1.0.0"
}
⚠️ **GitHub.com Fallback** ⚠️