【React】axiosでサーバーからデータを取得する方法
hebishima.shogo
プログラマーのあれこれ
はい、hebiです。
PHPでMattermostへメッセージを送信する方法を記事にしたいと思います。
今回は、定期的なタスクの実行を行うcronを使ってMattermostへメッセージを送信してみます。
例えば、指定した時間に社員に向けて情報を発信したい場合などに有効です。
以下の環境で動作確認を行います。
Mattermostへメッセージを送信可能にするための設定を行います。
以下の操作でシステムコンソールを表示します。
「統合機能」を選択し、パーソナルアクセストークンを有効にします。
プロフィールのセキュリティからアクセストークンを生成します。
アクセストークンをコピーしておきましょう。
送信するチャンネルのIDを取得します。
コピーしておきましょう。
以上で設定完了です。
メッセージを送信する関数を実装します。
public function sendMessage()
{
$mattermostUrl = "http://your-mattermost-server:8065";
// ここに生成したアクセストークンを指定
$apiToken = "9bb4owrd4t8dxcs5aooo4ezhrw";
// ここに送信したいチャンネルのIDを指定
$channelId = "4cki6gqt3fg1pepfzc86be8qaa";
// 送信したいメッセージを指定
$message = "Hello";
$url = "$mattermostUrl/api/v4/posts";
$data = [
'channel_id' => $channelId,
'message' => $message
];
// cURLセッションの初期化
$ch = curl_init($url);
// cURLオプションの設定
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $apiToken",
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
// cURLリクエストの実行
$response = curl_exec($ch);
// HTTPステータスコードの取得
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// cURLセッションのクローズ
curl_close($ch);
// レスポンスの確認
if ($httpCode == 201) {
return true;
} else {
return false;
}
}
作成したsendMessageをcronのrunで呼び出します。
public function run(array $params)
{
if ($this->sendMessage()){
CLI::write('successfully.', 'green');
}else{
CLI::error('error');
}
}
以上で実装完了です。
実行してみましょう!
Tera Termからcommand:testを実行してみます!
sudo php spark command:test
成功することを確認!
Helloが指定したチャンネルに送信されました!!
簡単にメッセージを送信することができましたね!
今まで手動で送っていたメッセージ送信を自動化することで時短になること間違いなしです( `ー´)ノ
ぜひ利用してみてください(;’∀’)
次回はファイルの送信方法を記事にしたいと思います。
最後までお読みいただきありがとうございました(^^♪