MatterMostをphpで操作

slackに変わる手軽なチャトアプリにMatterMostがある。

mattermostはコマンドラインで操作できる。
phpから exec関数などで、新規ユーザ登録や、チャンネルに追加、ユーザ削除など多くのコントロールができる。
当初v5.30のころは
?php
$command = ‘./mattermost user create –firstname ‘.$firstname.’ –lastname ‘.$lastname.’ –email ‘.$email.’
–username ‘.$username.’ –password ‘.$password ;
exec($command);
コマンド実行できたが。
V6以後は mattermostコマンドは使えず、 mmctlコマンドを使うことになる。
PHPはウェブサーバで動作するという制限がある。
コマンドの実行ユーザは apacheやウェブからでは動作しない。シェルコンソールからphp mmctl user create などとすれば動作するが。
ウェブからではできないということ。
実行ユーザを変える方法にはいくつかある、 sudo ユーザに切り替える方法、/etc/sudoerにapacheを加えるなど。
また、cronを使って、bashから起動させる方法もある。
手軽にできる crontabを使う。
crontab -e
*/2 * * * * /usr/bin/php /var/www/cron/mmctl.php
2分おきにmmctlをスキャンして、フラグがあれば phpのソースからmmctlを実行する。
?php
pdoでテーブルに新規登録をチェック
foreach($results as $res) {
  $command = ‘/opt/mattermost/bin/mmctl user create –firstname ‘.$firstname . ‘ –lastname ‘.$lastname.’ –email ‘.$mail.’ –username ‘.$username. ‘ –password ‘.$password .’ –local’;
  exec($command);
}

これでスムーズに動作する、mmctl.phpにチームへの追加や削除など自在にmattermostのコマンドを入れておけばよい。