「PHPからLINEを自動的に送信したい」
「LINEのAPIがよくわからない・・・」
このような場合には、この記事の内容が参考となります。
この記事では、LINE Notifyを使ったPHPによるメッセージ送信を解説しています。
本記事の内容
- LINE Notifyとは?
- PHPでLINE Notifyを利用するのに必要なモノ
- 動作確認(LINE自動通知)
それでは、上記に沿って解説していきます。
LINE Notifyとは?
LINE Notify
https://notify-bot.line.me/ja/
上記ページでは、次のように説明が記載されています。
Webサービスと連携すると、LINEが提供する公式アカウント"LINE Notify"から通知が届きます。 複数のサービスと連携でき、グループでも通知を受信することが可能です。
この説明は、少しわかりにくいです。
あと、Webサービスの登録も必要かどうかもよくわかりません。
安心してください。
LINEのアカウントさえあれば、誰でも簡単に利用できます。
そして、Webサービスの登録も不要です。
ログインした後の画面にデカデカと次のように表示されています。
このLINE Notify(API)には、大きく2つのAPIが用意されています。
- 認証系
- 通知系
この記事で取り上げるのは、通知系の方です。
そして、公式マニュアルページに行くと次のような画像が出てきます。
OAuth2というキーワード出てきます。
これらを見ると、面倒臭いヤツだと思うかもしれません。
しかし、安心してください。
面倒臭いヤツは、認証系だけです。
通知系は、何も難しいところはありません。
決まったフレンド(自分含む)に送るだけなら、簡単です。
以上、LINE Notifyに関する説明でした。
次は、PHPでLINE Notifyを利用するのに必要なモノを確認します。
PHPでLINE Notifyを利用するのに必要なモノ
今回は、PHPからLINE Notifyを利用します。
その際に必要となるモノは、次の2つです。
- アクセストークン
- cURL関数
アクセストークンは、認証済みユーザーを識別するための文字列です。
LINE Notifyのページ上でアクセストークンを発行します。
アクセストークンの発行の方法は、次の記事で詳しく解説しています。
また、cURL関数については次の記事で説明しています。
cURL関数が利用できない場合は、参考にしてください。
以上、PHPでLINE Notifyを利用するのに必要なモノを説明しました。
最後は、発行したアクセストークンを用いて動作確認を行います。
動作確認(LINE自動通知)
LINE Notify API Document
https://notify-bot.line.me/doc/ja/
LINE Notify API仕様は、上記ページに記載されています。
この仕様に基づいて、動作確認を行います。
今回は、通知系のAPIを利用します。
<?php require 'vendor/autoload.php'; $token = "LINE Notifyで発行したアクセストークン"; // リクエストヘッダ作成 $message = "テスト。\nLINE Notifyを利用。"; $query = http_build_query(['message' => $message]); $header = ['Authorization: Bearer ' . $token]; $ch = curl_init('https://notify-api.line.me/api/notify'); $options = [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => $header, CURLOPT_POSTFIELDS => $query ]; curl_setopt_array($ch, $options); $response = curl_exec($ch); curl_close($ch); echo $response; ?>
上記を実行して、次のように表示されれば成功です。
{"status":200,"message":"ok"}
アクセストークンが無効であれば、次のように表示されます。
{"status":401,"message":"Invalid access token"}
無効の場合は、設定したアクセストークンを確認してみましょう。
なお、成功の場合は、LINEアプリ上で次のように表示されています。
アクセストークン発行時に入力したトークン名が、先頭に表示されています。
以上、動作確認の説明でした。