Skip to content

Latest commit

 

History

History
52 lines (40 loc) · 1.95 KB

adapter.md

File metadata and controls

52 lines (40 loc) · 1.95 KB

概要

Adapter は、lxbotと外部サービスの間で、メッセージフォーマットを変換するためのモジュールです。
次のフォーマットでlxbotにメッセージを渡す必要があります。

map[string]interface{}{
	"user": map[string]interface{}{
		"id": (string),
		"name": (string),
	},
	"room": map[string]interface{}{
		"id": (string),
		"name": (string),
		"description": (string),
	},
	"message": map[string]interface{}{
		"id": (string),
		"text": (string),
		"attachments": []map[string]interface{}{
			{
				"url": (string),
				"description": (string),
			},
		},
	},
}

インターフェース

  • func Boot(ch *chan map[string]interface{}) (optional)

Adapterが読み込まれ、かつ、 SendReply が実装されている場合に実行されます。

map[string]interface{} をやりとりするためのchannelのポインターを渡します。
このchannelでは、lxbotに対してメッセージを送ることができます。
例えば、外部サービスからWebSocket経由で来たメッセージを適切なメッセージフォーマットに変換し、このchannelに送ることでlxbotが Script を実行します。

実装例は lxbot/adapter-kokoro.io/adapter.go を参照してください。

  • func Send(message map[string]interface{})

Scriptsend モードでメッセージを送信した場合に実行されます。
この関数では外部サービスにメッセージを送信することを想定しています。

  • func Reply(message map[string]interface{})

Scriptreply モードでメッセージを送信した場合に実行されます。
この関数では外部サービスに返信メッセージを送信することを想定しています。

返信の概念が存在しない外部サービスでは、内部的に Send を呼び出して構いません。