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


関連記事

laravel logo

Laravel Authのパスワードリセット機能をカスタマイズする

1 はじめに2 準備2.1 Auth2.2 mailhog3 ユーザー登録とログイン4 パスワードリセットのカスタマイズ4.1 ルーティング確認4.2 view編集4.3 認証処理の編集5 リセット画 ...

Go言語

Go言語の基礎〜基本構文その1〜

1 はじめに2 変数2.1 変数の定義2.2 暗黙的な定義2.3 varと暗黙的な定義2.4 ローカル変数とパッケージ変数3 定数3.1 const3.2 iota4 関数4.1 関数定義の基本4.2 ...

Go言語

Go 1.24で追加されたjsonのomitzero

1 はじめに2 1.24の更新点3 jsonのomitzeroタグ3.1 Go 1.23までの場合3.2 Go 1.24での場合3.3 要素が空の場合とnilの場合3.4 omitzeroをコントロー ...

Stripe Connectを使って継続課金にクーポンを適用する

1 はじめに2 クーポンについて2.1 クーポンのタイプ2.2 期間2.3 引き換え回数制限2.4 その他3 クーポンの作成4 クーポンの使用4.1 定期支払にクーポンを適用4.2 Checkoutで ...

laravel logo

[Laravel] ログの扱い方 [5.8]

1 はじめに2 環境3 Monologについて4 コード上で設定する方法5 config/logging.phpで設定する方法6 おまけ:ログレベルについて7 さいごに8 おすすめ書籍 はじめに こん ...

フォロー

blog-page_side_responsive

2019年10月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

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