塩焼きブログ

塩焼きに関しての研究内容を公開しています

SlackのAPIを使ってPHPで投稿する

SlackにAPIから投稿するにはIncoming WebHooksを使います。Slackの左上の設定メニューからApps & integrationsをクリックしSlackのApp Directoryに移動します。検索フォームがあるのでIncoming WebHooksと検索するとIncoming WebHooksの設定ページが出てきます。後は質問に答えてWebHook URLをもらいましょう。

PHPのサンプルはこちらのコードをベースにし、SSLの設定はこちらを参考に付け加えました。おそらくSSLの設定が必要だったのはPHPのバージョンが違うのかもしれませんね。

<?php
file_get_contents(
    'https://hooks.slack.com/services/hoge/hoge2/hoge3',
    false,
    stream_context_create([
        'http' => [
            'method' => 'POST',
            'header' => 'Content-Type: application/json',
            'content' => json_encode("テストメッセージ"),
        ],
        'ssl' => [
            'verify_peer' => false,
            'verify_peer_name' => false
        ]
    ])
);

ちなみにSSLの設定を行わないと下記のようなエラーが出ていました。

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in xxxxx