概要
Mattermost API には、以下のドライバ群がありますが、ここでは PHP Driver を Laravel 上で実行する手順を整理したいと思います。
- Official Drivers
- Community-built Drivers
- PHP Driver - built by @gnello and @prixone
- Python Driver - built by @Vaelor
Mattermost PHP Driver ソースコードの簡単な解説
フォルダ構成
大きく分けると以下の3部構成です。
- src/Driver.php
- ユーザフロントのDriverクラスが定義されており、セッション情報を管理しています。
- ログインするとこのDriverクラスインスタンスがトークンが登録されますので、
- 以降はこのトークンを利用してAPIコールが可能になります。
- src/Client.php
- PHPのデファクト?のライブラリ
GuzzleHttp
をラップしたクラスです。 - ここでREST APIを発行しています。
- PHPのデファクト?のライブラリ
- src/Models/*.php
- Mattermost APIの種別ごとにクラス定義されています。
- このクラスを利用して、簡単にMattermost APIをコールできます。
使い方
Laravel, PHP 玄人なら、github の READMEを見てすぐに使えるのかな?と思われます。
ただ、自分にはちょっと壁があったので、自分なりにソース解釈して手順を整理したほうが良さそうだと思った次第です。
Mattermostってそもそもどうやってインストールする?
Mattermosの導入手順は、こちらをご参照ください。
Mattermot APIのPHPドライバを Laravel で実行する手順
今回整理した成果は以下のリポジトリで一般公開しております。
上記では、環境はすべて docker-composeベースで行っておりますので、Dockerfileを見ていただければ、本番のテスト環境構築にも役立つと思います。
また、Laravelでのサンプルコード作成では、Laravelのコマンドで実装しておりますので、bash 等で負荷テストスクリプト化も用意に実現できます。
現時点では、以下のサンプルコードを公開しております。
- ユーザのログインサンプル
- ユーザの新規追加サンプル
- チームの新規追加サンプル
- チャネルの新規追加サンプル
- チームへのユーザ登録サンプル
- チャネルへのユーザ登録サンプル
- チャネルへのメッセージ投稿サンプル
最後に
なぜPHPでやっているの?と思われる方がいらっしゃるかもしれません。
その答えは、単に自分が、PHPを勉強したかったからです〜。