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(シングルサインオン)を導入するのか

blog-page_footer_336




blog-page_footer_336




-BackEnd

執筆者:


comment

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

CAPTCHA


関連記事

laravel logo

Laravelの基礎知識

1 はじめに2 Laravelの概要2.1 学習コストが低い2.2 Symfonyがベース2.3 DIを積極的に活用している3 ディレクトリ構成3.1 app3.2 bootstrap3.3 conf ...

rails

RailsでSidekiqを使ってみた

1 はじめに1.1 実行環境2 前準備2.1 Redisのインストール3 Railsの準備3.1 プロジェクト作成3.2 新規登録時にAPIを叩く4 Sidekiqの準備4.1 Workerを作る5 ...

RSpecの個人的Tips集〜その1〜

1 はじめに2 テストコードの実行をスキップする3 共通のテストコードを用意する4 外部APIの返却値をスタブにする5 さいごに はじめに みなさん、テストコードは書かれているでしょうか? 私も極力書 ...

rails

Rails Developer Meetup に参加してきました【1日目】

1 はじめに2 発表について2.1 安全かつ高速に進めるマイクロサービス化2.2 Rails in Microservices2.3 MySQL/InnoDB の裏側2.4 H2O/mruby でつく ...

rails

Railsでの非同期処理とDelayed Job

1 はじめに2 Active Job2.1 Active Jobの役割2.2 ジョブを作成する2.3 ジョブをキューに登録する2.4 コールバック2.5 例外3 Delayed Job3.1 設定3. ...

フォロー

follow us in feedly

blog-page_side_responsive

2019年10月
 12345
6789101112
13141516171819
20212223242526
2728293031 

アプリ情報

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