PHPでLINEメッセージングAPIを使ってメッセージを送信してみた!

Web開発
この記事は約5分で読めます。

こんにちは、@Manabu です。

アプリから通知を送る方法は、メールやSMSなどさまざまありますが、最近ではLINEを利用するケースも増えてきています。

LINEはみなさんも使っていると思いますが、日本国内で広く利用されているメッセージングアプリであり、ユーザーにダイレクトに情報を届けるのに非常に便利です。

Manabu
Manabu

今回は、PHPでLINEに通知を送りたい!

ということで、調査した内容についてまとめていきます。

この記事は、以下のような方におすすめです。

・PHPでLINEのメッセージを送りたい
・LINEのメッセージングAPIを使用してみたい

簡単に実装できるので、ぜひ参考にしてください。

LINE Developersの設定

PHPでLINEのメッセージを送信するためには、LINE Developersのアカウントが必要です。

アカウントがない方は、以下を参考にアカウントを作成してください。

Messaging APIを始めよう
LINE Developersサイトは開発者向けのポータルサイトです。LINEプラットフォームのさまざまな開発者向けプロダクトを利用するための、管理ツールやドキュメントを利用できます。LINEログインやMessaging APIを活用して、...

LINE Developersのサインイン画面から、QRを読み込むと進んで行くことができます。

プロバイダーの作成

アカウントの作成ができたら、プロバイダー名を考え、プロバイダーの作成を行います。

チャネルの作成

プロバイダーの作成ができたら、次にチャネルの作成を行います。

以下のような画面が表示されるので、Messaging API を選択しクリックします。

次に表示された以下の画面で、チャネル名やアイコン、説明などを入力してチャンネルを作成します。

チャンネルアクセストークンの発行

LINE Developersアカウント、プロバイダー、チャネルの作成ができたら、Messaging API設定から「チャンネルアクセストークン」を発行します。

このアクセストークンはPHP側の設定として必要なので、必ず発行するようにしてください。

ユーザーIDの確認

今回はテストで行うため、送信先はLINEアカウントの持ち主である自分にします。

送信先として、ユーザーIDを指定する必要があり、コンソールから確認することができます。

チャネル基本設定の一番下に、「あなたのユーザーID」という項目があり、これが自分のユーザーIDになります。

いくつかプロバイダーを作成してみましたが、ユーザーIDは一意の値ではないようですね。

PHPでメッセージを送信

次にPHPを使ってLINEにメッセージを送信するソースを記載します。

以下のソースを、send_message.phpというファイルに書き込みます。
※アクセストークンとユーザーIDはご自身の情報に変更してください。

<?php
// チャンネルアクセストークン
$accessToken = 'YOUR_ACCESS_TOKEN';
// 送信先のユーザーID(ユーザーIDはLINEのUserIDを指定)
$to = 'USER_ID';
// 送信するメッセージ内容
$message = 'PHPからのLINEメッセージ送信テストです。';
// メッセージのデータ
$postData = [
    'to' => $to,
    'messages' => [
        [
            'type' => 'text',
            'text' => $message
        ]
    ]
];
// HTTPヘッダー
$headers = [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $accessToken,
];
// cURLセッションを初期化
$ch = curl_init('https://api.line.me/v2/bot/message/push');
// cURLオプションを設定
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// APIリクエストを実行
$result = curl_exec($ch);
// エラーチェック
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
} else {
    echo 'Response: ' . $result;
}
// cURLセッションを終了
curl_close($ch);
?>

ファイルを保存したら、上記のスクリプトを実行します。

php send_message.php

これで、LINEに対してメッセージが送信されています。

以下、LINEの画面です。

正しく送信されました。

まとめ

今回は、PHPでLINEのメッセージを送信する方法を紹介しました。

これがあれば、メールではなくLINEで簡単にアプリから通知をつけとることができますね!

少しでも役に立てばと思います。