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


関連記事

rails

Rails5.2+Pumaのデプロイ設定

1 はじめに1.1 環境2 Pumaとは?2.1 Unicornとの比較2.2 Pumaのスレッド3 Pumaの使い方4 デプロイ設定4.1 Gemを追加4.2 Capfileの設定4.3 deplo ...

markdownで書けるドキュメントツールのGitbookを試す

1 はじめに2 Gitbookとは3 nvm4 node.jsインストール5 Gitbook導入5.1 インストール5.2 初期化5.3 ローカルでブラウザから確認6 作成と編集6.1 見出し編集7 ...

Go言語

Go言語、ゴルーチン(goroutine)で並列処理を

1 はじめに2 ゴルーチン2.1 go文2.2 ゴルーチンの終了条件2.3 WaitGroup3 チャネル3.1 チャネルの型3.2 チャネルの生成3.3 チャネルの送受信3.4 チャネルとゴルーチン ...

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

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

Stripe Connectを使って複合プランの継続課金を実装

1 はじめに1.1 想定する継続課金1.2 想定するシチュエーション2 継続課金商品の作成2.1 プランの継続課金商品の作成2.2 ID数の継続課金商品の作成3 実装3.1 プランAとID数を30契約 ...

フォロー

blog-page_side_responsive

2019年10月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

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