【PHP】Slackにメッセージを送るには?(サンプルコードあり)

PHP

PHPでSlackにメッセージを送る方法についてご紹介します。サンプルコードも掲載していますので、コピペするだけでOKです。

スポンサーリンク

手順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にメッセージが表示されます。

コメント

タイトルとURLをコピーしました