WordPressからLINE Notifyにメッセージ送信する方法

先日いじってみた LINE Notify が面白かったので、今度は WordPress から何か操作した時にメッセージ通知する、ということをやってみたいと思います。

LINE Notify て何?という方は、前回のブログ記事をご覧ください。

作り方

パーソナルアクセストークンを取得

事前準備として、LINE Notify のパーソナルアクセストークンを取得しておきます。

パーソナルアクセストークンの取得方法は、下記の解説記事を参考にしてみてください。

LINE Notify通知用の関数追加

functions.php に LINE Notify に通知する関数を追加します。

if ( ! function_exists( 'my_send_linenotify' ) ) {
    function my_send_linenotify( $message, $image_thumbnail = '', $image_fullsize = '' ) {
        $url = 'https://notify-api.line.me/api/notify';
        $token = '[MY_ACCESS_TOKEN]';
        $response = wp_remote_post( $url, array(
            'method' => 'POST',
            'headers' => array(
                'Authorization' => 'Bearer '.$token,
            ),
            'body' => array(
                'message' => $message,
                'imageThumbnail' => $image_thumbnail,
                'imageFullsize' => $image_fullsize,
            ),
        ));
        if ( is_wp_error( $response ) ) {
            $error_message = $response->get_error_message();
            echo "Error: $error_message";
        }
    }
}

[MY_ACCESS_TOKEN] の部分は、取得したパーソナルアクセストークンに置き換えてください。

これで my_send_linenotify() の引数にメッセージを渡して呼び出せば、LINE Notify に通知されるようになります。

以下、通知が求められそうなケースを例として、実際にメッセージ通知を試してみましょう。

管理画面ログイン時に通知

不正なログインが行われていないか監視するため、誰かがログインした時に通知をしてみます。

こちらのソースを functions.php に追加します。

function my_wp_login( $user_login, $current_user ) {
    $message = $user_login . 'がログインしました';
    my_send_linenotify( $message );
}
add_action( 'wp_login', 'my_wp_login', 10, 2 );

こちらのソースを functions.php に追加します。

LINE Notify

新規投稿時に通知

次に、新規投稿が公開された時に通知が送られるようにしてみます。

こちらのソースを functions.php に追加してみましょう。

function my_publish_post( $ID, $post ) {
    $message = "新規投稿が公開されました。\n";
    $message .= "タイトル:" . $post->post_title . "\n";
    $message .= "URL:" . get_permalink( $ID );
    my_send_linenotify( $message );
}
add_action( 'publish_post', 'my_publish_post', 10, 2 );

投稿が公開すると次のような通知が送られてきます。今回は、タイトルとURLを表示させてみました。

LINE Notify

Contact Form 7 でメール送信時に通知

Contact Form 7 の問い合わせフォームからメール送信された時にも通知させてみます。

function my_wpcf7_mail_sent( $contact_form ) {
    $message = "お問い合わせフォームが送信されました。\n";
    $message .= "タイトル:" . $contact_form->title;
    my_send_linenotify( $message );
}
add_action( 'wpcf7_mail_sent', 'my_wpcf7_mail_sent', 10, 1 );

通知はこんな感じになります。メールを確認しなくても分かるので、使い方次第で結構重宝しそうですね。

LINE Notify

まとめ

こんな感じで、かなりお手軽に LINE にメッセージ通知できてしまうことがお分かりになるかと思います。

ご紹介した以外にも様々なタイミングから通知をかけることはできるので、応用次第でかなり便利な使い方ができそうです。

みなさんも色々試してみてください!

この記事を書いた人

ko31

岩手県出身、群馬県在住のフリーランスWeb系エンジニアです。
Webシステム・アプリ、Webサービス、WordPress開発等を雑多にこなしています。バンカラ応援好きの振り飛車党。
PHP / WordPress / 高校野球 / 将棋 / WordPress / ブログ / 食べること / 二児の父親

>>もっと詳しいプロフィールはこちら

お仕事のご相談・お問い合わせ

当ブログの管理人は、Gosign(ゴーサイン)という屋号でフリーランス Web エンジニアとして活動しています。
ブログの掲載内容はもちろん、Web サイト制作や Web アプリケーション開発などのご相談・ご質問がありましたら、どうぞお気軽にお問い合わせください!

合わせて読みたい記事