Mattermostと他のアプリケーションを連携する新しい方法として、Mattermost Apps FrameworkがDevelopers Previewとして利用可能になりました。
https://developers.mattermost.com/integrate/apps/Appsの説明としてBe written in any language.
と説明されており、せっかくなのでJavaで試してみました。普段仕事で使うのはJavaなので。。。
リポジトリ: https://github.com/maruTA-bis5/mattermost-apps-example-java
Appsを作るのに最低限必要なことは
kaakaaさんの記事やQuick startを読んで頂くとして、それ以外に/install
がOKのレスポンスを返さないとインストールに失敗するようです(画面上や/apps list
では問題ないように見えるが、Failed to install app
のログが出力される)。mattermost-plugin-appsのコミット0cae0b3fadb7bfae03ffc015cab28654e4bf2d31で確認しました。
Java App側はJAX-RSでサクッと。Quick startではいくつかのjsonファイルを作成してそれをGo側で読み込んで返却するようにしていましたが、動的に生成できるようにデータモデルとJacksonを使っています。
内容としてはQuick startと同じなので代わり映えはありませんが、Goでなくても同じ挙動のAppsを作れるということは確認できました。より複雑な処理が必要になってくるとApps APIを利用することになりますが、Apps Pluginが提供するREST APIなのでそこまで難しくはなさそうです。
Pluginと違って、Go以外の言語でも簡単に作れるのは良いですね。