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が読み込まれ、かつ、 Send
と Reply
が実装されている場合に実行されます。
map[string]interface{}
をやりとりするためのchannelのポインターを渡します。
このchannelでは、lxbotに対してメッセージを送ることができます。
例えば、外部サービスからWebSocket経由で来たメッセージを適切なメッセージフォーマットに変換し、このchannelに送ることでlxbotが Script
を実行します。
実装例は lxbot/adapter-kokoro.io/adapter.go を参照してください。
func Send(message map[string]interface{})
Script
が send
モードでメッセージを送信した場合に実行されます。
この関数では外部サービスにメッセージを送信することを想定しています。
func Reply(message map[string]interface{})
Script
が reply
モードでメッセージを送信した場合に実行されます。
この関数では外部サービスに返信メッセージを送信することを想定しています。
返信の概念が存在しない外部サービスでは、内部的に Send
を呼び出して構いません。