こんにちは、@Manabu です。
アプリから通知を送る方法は、メールやSMSなどさまざまありますが、最近ではLINEを利用するケースも増えてきています。
LINEはみなさんも使っていると思いますが、日本国内で広く利用されているメッセージングアプリであり、ユーザーにダイレクトに情報を届けるのに非常に便利です。
今回は、PHPでLINEに通知を送りたい!
ということで、調査した内容についてまとめていきます。
この記事は、以下のような方におすすめです。
簡単に実装できるので、ぜひ参考にしてください。
LINE Developersの設定
PHPでLINEのメッセージを送信するためには、LINE Developersのアカウントが必要です。
アカウントがない方は、以下を参考にアカウントを作成してください。
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で簡単にアプリから通知をつけとることができますね!
少しでも役に立てばと思います。