PHPでSlackにメッセージを送る方法についてご紹介します。サンプルコードも掲載していますので、コピペするだけでOKです。
LINE Notifyが終了してしまうので、今回はその対策でコードを作ってみました!
手順1 Incoming Webhookを有効にする
まずはSlack側での下準備です。APIからメッセージを送れるようにしておきます。
SlackのWebhook URL取得手順 #Slack – Qiita
上記サイトの通りやればOKです。1分でできます♪
Webhook URLは以降で使うので、コピーしておきましょう。
手順2 PHPでSlackにメッセージを送る
Webhookを有効にしたら、さっそくPHPでSlackを送ってみましょう。
<?php
// SlackのWebhook URLを定義
define('SLACK_WEBHOOK_URL', 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'); // 置き換えてください
function sendSlackMessage($message, $channel = null, $username = null)
{
// Webhook URLが定義されていない場合はエラーを返す
if (!defined('SLACK_WEBHOOK_URL') || empty(SLACK_WEBHOOK_URL)) {
throw new Exception('SLACK_WEBHOOK_URL is not defined.');
}
// メッセージデータを準備
$payload = [
'text' => $message,
];
// オプションでチャンネルやユーザー名を指定
if ($channel) {
$payload['channel'] = $channel;
}
if ($username) {
$payload['username'] = $username;
}
// cURLでリクエストを送信
$ch = curl_init(SLACK_WEBHOOK_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// ステータスコードを確認
if ($httpCode == 200) {
return true; // 成功
} else {
return false; // 失敗
}
}
// 使用例
try {
$message = 'こんにちは!Slackへのメッセージ送信テストです。';
$channel = '#general'; // 送信先チャンネル(オプション)
$username = 'PHP Bot'; // 送信元の表示名(オプション)
if (sendSlackMessage($message, $channel, $username)) {
echo "メッセージを送信しました!";
} else {
echo "メッセージ送信に失敗しました。";
}
} catch (Exception $e) {
echo 'エラー: ' . $e->getMessage();
}
コピペでOKです。実行するとSlackにメッセージが表示されます。
コメント