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-Type application/x-www-form-urlencoded

リクエストボディ

フィールド タイプ 説明
grant_type String client_credentials
client_id String チャネルID
client_secret String チャネルシークレット

レスポンス

プロパティ タイプ 説明
access_token String 短期のチャネルアクセストークン
expires_in Number 有効期限
token_type String Bearer

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

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

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

リクエストヘッダー

リクエストヘッダー 説明
Content-Type application/json
Authorization Bearer { channel access token }

リクエストボディ

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

レスポンス

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

さいごに

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

おすすめ書籍

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

blog-page_footer_336




blog-page_footer_336




-BackEnd

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Go言語

Go言語のエラーハンドリングとログローテーション

1 はじめに2 エラーハンドリング2.1 error インターフェース2.2 pkg/errors パッケージ3 独自のエラータイプ付き errorsパッケージを作成4 log パッケージ4.1 lo ...

laravel logo

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

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

rails

Shrineでアップロードする際に画像を加工する

1 はじめに2 アップロードする画像のリサイズ2.1 Gemを追加2.2 Uploaderの修正3 サムネイルを作成する3.1 Uploaderの修正3.2 サムネイルを表示する4 バリデーションの追 ...

laravel logo

Laravelの便利なメールアドレスのバリデーション設定

1 はじめに2 不具合内容2.1 バリデーションルール設定2.2 不正なメールアドレス例3 対応3.1 email:rfc3.2 email:strict3.3 email:dns3.4 email: ...

laravel logo

Laravelでメールを送る

1 はじめに1.1 準備2 実装2.1 Mailableクラスの作成2.2 テンプレートの作成2.3 Mailableクラスの修正2.4 コントローラの作成2.5 コンフィグの修正3 さいごに4 おす ...

フォロー

blog-page_side_responsive

2019年10月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

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