BackEnd

WebアプリからLINEのメッセージを送る方法

投稿日:2019年10月15日 更新日:

はじめに

以前、WebアプリケーションにLINEログインを組み込む方法を紹介しました。そこで今回はWebアプリケーションからLINEのメッセージを送る方法を紹介します。

Messaging APIとは

Messaging APIはLINEボットを操作するREST APIです。このAPIでは以下のような機能を提供しています。

  • LINEボットから任意のユーザ、グループ、ルームに対してメッセージを送る
  • ユーザからのメッセージやアクションに応じてメッセージを送る(Webhook)
  • ユーザプロフィールを取得する
  • グループチャットに参加する
  • リッチメニューを使う
  • ビーコンを使う
  • 送信件数を取得する

Messaging APIの仕組み

Messaging APIを使うとボットサーバとLINEプラットフォームとの間でデータを交換する事ができます。リクエストはJSON形式でHTTPSを使って送られます。

処理の一例は以下のとおりです。

  • ユーザは友達登録しているLINE公式アカウントにメッセージを送る
  • LINEプラットフォームからボットサーバのWebhook URLにWebhookイベントが送られる
  • Webhookイベントに応じてボットサーバからユーザにLINEプラットフォームを介してメッセージを送る

Webhookイベント

友達登録やメッセージ送信などのイベントがトリガーされると、Webhook URLにWebhookイベントがHTTPSでPOSTされます。このリクエストにはステータスコード200を返す必要があります。

POSTされるパラメータにはイベントの種類を表す type やイベントの送信元情報を表す source 、イベントごとのパラメータが含まれます。

例えば、ユーザから友達登録された場合は以下のようなパラメータが送られます。

メッセージオブジェクトの種類

メッセージはメッセージオブジェクトとして送ります。メッセージオブジェクトはメッセージの内容を表すJSONオブジェクトです。

メッセージオブジェクトの種類は以下のとおりです。

  • テキストメッセージ
  • 画像メッセージ
  • 音声メッセージ
  • 動画メッセージ
  • 位置情報メッセージ
  • スタンプメッセージ
  • イメージマップメッセージ
  • テンプレートメッセージ
  • Flex Message

料金形態

Messaging APIを使うためにはLINE公式アカウントのいずれかのプランに加入するか、LINE@のMessaging APIのいずれかのプランに加入する必要があります。

LINE@はLINE公式アカウントに統合される予定ですので、LINE公式アカウントのプランについて簡単に説明すると、フリープラン、ライトプラン、スタンダードプランの3種類があります。これらの違いは月額料金、無料メッセージ件数、追加メッセージ件数のみで機能の制限はありません。

無料メッセージ件数を超えてメッセージを送りたい場合は、1通ごとにプランごとに決まった料金が追加でかかります。

LINE Developersの設定

Messaging APIを利用するためにはLINE Developersにログインして、Messaging APIのチャルを作成する必要があります。LINE Developersへのログインはこちらの記事を参考にしてください。

チャンネルを作成する

まずはじめに、プロバイダー画面の新規チャンネル作成からMessaging APIを選択し、必要な項目を入力してチャンネルを作成します。

チャンルを作成したら、Webhook送信を 利用する に変更し、Webhook URLを設定します(LINEログインと組み合わせた場合はWebhookを使用しなくてもメッセージを送れます)

LINEログインとリンクする

メッセージを送るには相手のユーザIDかグループIDかルームIDを知っていなければなりません。これらのIDを取得する方法としては、LINEログインにMessaging APIのボットをリンクするかWebhook URL経由で取得することができます。

LINEログインとリンクするには、LINEログインのチャネルの このチャンネルにリンクされたボット で指定する必要があります。

メッセージを送ってみる

Messaging APIでメッセージを送るには、まずチャネルアクセストークンを取得します。以下のAPIで取得します(LINE Developersでも発行できます)

POST https://api.line.me/v2/oauth/accessToken

リクエストヘッダー

リクエストヘッダー説明
Content-Typeapplication/x-www-form-urlencoded

リクエストボディ

フィールドタイプ説明
grant_typeStringclient_credentials
client_idStringチャネルID
client_secretStringチャネルシークレット

レスポンス

プロパティタイプ説明
access_tokenString短期のチャネルアクセストークン
expires_inNumber有効期限
token_typeStringBearer

プッシュメッセージを送る

LINEログインなどで取得したユーザIDに対してメッセージを送るには以下のAPIにPOSTします。

POST https://api.line.me/v2/bot/message/push

リクエストヘッダー

リクエストヘッダー説明
Content-Typeapplication/json
AuthorizationBearer { channel access token }

リクエストボディ

プロパティタイプ必須説明
toString必須送信先のID
messagesメッセージオブジェクトの配列必須送信するメッセージ
notificationDisabledBoolean任意trueの場合通知されない

レスポンス

ステータスコード 200 と空のJSONオブジェクト

さいごに

WebアプリからLINEのメッセージを送る方法を紹介しました。これ以外にも様々なメッセージが送れますので、詳しくは公式のドキュメントをご覧ください。

おすすめ書籍

世界一わかりやすい LINE公式アカウントマスター養成講座  ITの常識が変わる! 成長する企業はなぜSSO(シングルサインオン)を導入するのか

page_footer_300rect




page_footer_300rect




-BackEnd

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

rails

さらば「rails migrate」、よろしく「ridgepole」

1 はじめに2 Ridgepoleとは3 rails migrateではなく、Ridgepoleを選定した理由4 rails migrateからRidgepoleへの移行手順5 capistrano3 ...

rails

【Puma】アプリサーバのチューニング

1 はじめに2 チューニングで注意する項目3 子プロセスの数3.1 最低3つの子プロセスを割り当てる3.2 最大子プロセス数3.3 CPUコア数と子プロセス数3.4 なぜPumaの子プロセス数を増やす ...

laravel logo

Laradock環境にPHPStormからXdebugする

1 はじめに2 Laradock側の設定変更2.1 xdebug.iniファイル2.2 .env2.3 コンテナの再構築3 PHPStormの設定3.1 Preferences3.1.1 Build, ...

laravel logo

[Laravel]データベースの暗号化について考えてみる

1 はじめに2 環境3 Laravelでの暗号化4 暗号化されたカラムは、そのままではLIKE検索ができない4.1 問題点4.2 解決案1:全件取得してPHP側でがんばって検索する4.3 解決案2:暗 ...

laravel logo

[Laravel] middlewareでHTTPリクエストの前後に処理を入れる

1 はじめに2 middlewareとは3 実装3.1 middleware作成3.2 コード実装4 middleware定義4.1 常に呼び出す4.2 特定のURLにアクセスした時のみ呼び出す4.3 ...

フォロー

follow us in feedly

page_side_300rect

2019年10月
« 9月 11月 »
 12345
6789101112
13141516171819
20212223242526
2728293031 

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。