60

LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

  • Upload
    others

  • View
    13

  • Download
    3

Embed Size (px)

Citation preview

Page 1: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者
Page 2: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEボット開発ガイドライン2021年1⽉18⽇ 更新版

※LINEボット開発における基本ルールは、申込書に記載される約款に基づきます。※当資料の無断転載は禁⽌いたします。

Page 3: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEボットについて

Webhook URLでのリクエスト受信時の注意事項

APIリクエスト送信時の注意事項

LINEログイン

その他関連機能

01

02

03

04

05

Contents

Page 4: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEボットについて

Page 5: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINE DevelopersLINE Developersは、LINEボットやLINEと連携したアプリケーション、サービスを開発するにあたって必要なチャネルの管理や、技術情報を掲載したドキュメントを閲覧するためのサイトです。

LINE DevelopersはこちらのURLからアクセスできます。 https://developers.line.biz/

ドキュメント コンソール

ボットやLINEログインなどの機能をご利⽤いただくときに必要な技術情報が掲載されているページです。

チャネル情報の確認や設定を⾏うページです。チャネルとは、ボットやLINEログインなどの機能を利⽤したサービスを開発するにあたって必要となるものです。

ドキュメント https://developers.line.biz/ja/docs/コンソール https://developers.line.biz/console/

リファレンス https://developers.line.biz/ja/reference/

Page 6: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEボットのしくみLINEボットは、Channel Gatewayサーバーを介して、お客様側システムのボットサーバーとLINEアプリ間で情報の送受信を⾏うしくみです。リクエストはJSON形式のデータを送受信するAPIを活⽤して⾏われます。

お客様側システムLINEプラットフォーム

Talkサーバー

Channel Gatewayサーバー

LINEアプリ

ボットサーバーユーザーが企業へメッセージを送信

企業がユーザーへメッセージを送信

処理サーバー/DB

API

API

Page 7: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEボットとチャネルの関係性についてLINE公式アカウントの構成要素としてのボットとチャネルの関係性は以下のとおりです。

LINE公式アカウント(API利⽤有)LINE公式アカウント(API利⽤無)

ボット(LINE Official Account Manager で管理) チャネル(LINE Developersで管理)

Messaging API

LINEログインアカウント名

同じプロバイダー傘下であれば、Messaging APIとLINEログインで取得できるuserIdは共通

ボットへの友だち追加・ブロック・ユーザーからのメッセージなどがあった際、Messaging APIのチャネルに設定されたWebhook URLにWebhookペイロードが送信される

LINEログインのチャネルにリンクするボットを設定することで、LINEログインを実装したサービスにユーザーがログインするときに、ボットを友だち追加するオプションを表⽰することが可能

※発⾏時に⾮公開状態のため、⼀般ユーザ向けにリリースするにはLINE Developersで公開済み状態に変更が必要

Messaging APIのチャネルで発⾏したチャネルアクセストークン(後述)を利⽤して、ボットからユーザーへのメッセージ配信を⾏う

Page 8: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEボットの各種⽤語

ボットサーバー 友だち追加・ブロック・ユーザーからのメッセージなど、LINEからのリクエストを受信するためのお客様側のサーバー。

Talkサーバー メッセージなどの送受信を担うサーバー。

Channel Gatewayサーバー(以下、GWサーバー)

Talkサーバーから受けた情報をボットサーバーへ送信したり、ボットサーバーから受けた情報をTalkサーバーへ送信したりするサーバー。ご利⽤にはチャネルが必要です。

リクエスト GWサーバーからボットサーバー、またはボットサーバーからGWサーバーへJSON形式のAPI情報を送受信すること。または送受信された情報そのもの。

Webhook 友だち追加やユーザーからボットへのメッセージ送信などのやり取りが発⽣した際に、GWサーバーからボットサーバーが受けるリクエスト。

イベント JSONコードの中に含まれる、友だち追加・ブロック等の情報や、ユーザーが公式アカウントに対して送ったメッセージの総称。1個のWebhookには複数のイベントが含まれている場合があります。

Webhook URL ボットサーバーのエンドポイントのURL。Webhookがトリガーされると、LINEプラットフォームからWebhook URLにリクエストが送信されます。Webhookイベントは、ユーザーがボットとやり取りするとトリガーされます。

プロバイダー チャネルにアプリを提供する組織。たとえば、企業の名前をプロバイダーとして使⽤できます。プロバイダーは、LINE Developersコンソールで作成できます。

以下LINEプラットフォーム⽤語集もご参照ください。https://developers.line.biz/ja/docs/glossary/

Page 9: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEボット開発開始⼿順/リリース前のご確認事項開発を⾏うには、まずは以下の⼿順を⾏ってください。1. LINE公式アカウントの申込みを⾏い、 API利⽤のチャネルを発⾏する2. API配信⽤のボットサーバー、およびSSL証明書を⼿配し、Webhook URLを設定する3. ボットサーバーでイベントリクエストを受信する準備を⾏う(ステータスコード200の返却)4. LINE Developersの チャネル基本設定 > メッセージ送受信設定 の「Webhook送信」を “利⽤する” に切り替える。5. アカウントを友だち追加して、Webhookイベントがボットサーバーまで届いているかを確認する

ユーザーへのリリース前には、以下を必ずご確認いただきますようお願いします。<「LINEボット開発ガイドライン」の遵守>1. LINE Developersへのアクセスが必要なメンバー全員がアクセスできるようになっている。2. Webhook URL項⽬に正しいURLが設定され、リクエストが届くことを確認した。3. ボット開発ガイドラインに記載されている(リクエスト受信時/送信時の注意点)を考慮した実装がされている。4. 「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト 」(弊社担当者よりご案内)のセキュリティ

基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウント API利⽤ガイドライン」(弊社担当者よりご案内)の “LINE公式アカウントAPI利⽤ルール” の遵守>5. ⾃社の会員情報や顧客データ、またはサイト内⾏動履歴等と紐付けて利⽤する場合、ユーザーに許諾を取るようにしている。6. ユーザーがいつでも取得された情報の取り扱いについて確認できるようになっている。(プライバシーポリシーの明⽰など)7. トーク上でパスワードや暗証番号、クレジットカード番号などセキュリティ上厳重に扱うべき情報を送信させないようにしている。

8. ユーザーがブロック等の理由によりアカウントと友だち関係を解除した場合、アカウント運営に不必要となる情報は原則24時間以内に削除するようにしている。(※ただし、問い合わせ対応など合理的な⽬的のために保存が必要な場合に限り、継続保存は可能)

9. 取得したuserIdなどの当社が提供した情報の利⽤は、情報を取得したアカウントの運営に関するものに限定し、他のアカウントでは使⽤しないようになっている。

Page 10: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

Webhook URLでのリクエスト受信時の注意事項

Page 11: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

Webhook URLでのリクエスト受信時の注意事項 –INDEX–

A)セキュリティを考慮した通信環境・サーバー環境構築- SSLによる通信環境- セキュリティガイドラインに準拠した環境構築

B)リクエスト受信時にステータスコード200をレスポンス

C) LINE以外からの不正リクエスト防⽌(Webhook Authentication)

D)⼤量な集中アクセスに対する考慮

E) WebhookのON/OFF設定

F) その他注意事項- 1リクエストに複数のイベントが含まれる場合を想定した処理- Webhookイベントオブジェクトのプロパティ受信処理

G)推奨のリクエスト処理⼿順

H)GWサーバー → ボットサーバーの通信エラー

Page 12: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

A) セキュリティを考慮した通信環境・サーバー環境1. SSLに対応した通信環境LINEボットでは、GWサーバーとボットサーバーの通信環境はSSLに対応していることを必須としております。また、⾃⼰証明書には対応しておりませんので、必ず事前に証明局からSSL証明書を⼿配していただきますようお願いいたします。

2. セキュリティガイドラインに準拠した環境構築LINEボットを実施するにあたって満たすべきセキュリティ基準を、弊社担当者からご案内しております以下の資料に記載しております。開発企業様は当資料に記載されているセキュリティ基準を遵守、または同等以上の環境をご準備いただき、開発を進めていただけますようお願いいたします。

• LINE BOT セキュリティガイドライン• LINE BOT セキュリティチェックリスト

SSL

GWサーバー ボットサーバー上記内容と利⽤可能な認証局については以下もご参照ください。

https://developers.line.biz/ja/docs/messaging-api/building-bot/#setting-webhook-url

Page 13: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

B) リクエスト受信時にステータスコード200をレスポンスボットサーバーでリクエストを受信したら、まずは迅速にステータスコード200を返却するようにしてください。ステータスコードの返却は、1000ミリ秒(1秒)以内が⽬安です。1秒を超過した場合はアラートメールが⾃動で送信されます。

200 OK

JSON形式

GWサーバー ボットサーバー 処理サーバー1000ミリ秒(1秒)以内

アラートメールについては以下でご案内しております。https://developers.line.biz/ja/docs/partner-docs/error-notification/

Page 14: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

C) LINE以外からの不正リクエスト防⽌(Webhook Authentication)

GW サーバーを経由

ボットサーバー

Webhookの "X-Line-signature" リクエストヘッダには署名が含まれています。ボットサーバーは、受信したリクエストボディを定められたアルゴリズムで計算し、リクエストに含まれていた署名と⼀致するかどうか⽐較することで、受け取ったリクエストがLINEからの正式なリクエストであるかどうか確認することができます。署名の計算⽅法は、https://developers.line.biz/ja/reference/messaging-api/#signature-validation をご確認ください。署名の計算鍵(Channel Secret)のお取り扱いにはくれぐれもご注意ください。

LINE以外のサーバーを経由

正しいリクエスト

不正なリクエスト

⼀致

不⼀致

リクエストを正常に処理してください。

処理をせずに廃棄してください。

リクエスト

LINEアプリからのメッセージ

不正なアクセス

注意事項 ・LINE社では、IPアドレスの開⽰は⾏っておりません。

リクエスト

リクエストボディから計算し、ヘッダの署名の値と⼀致する

か確認

Page 15: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

D) ⼤量な集中アクセスに対する考慮LINEのメディア特性上、突発的に⼤幅にアクセスが集中する時があります。そうなってしまうと、処理しきれないリクエストがボットサーバーに溜まってしまい、返信メッセージの遅延や不達が発⽣してしまうことが考えられます。返信メッセージ開発段階で負荷テストなどを⾏って、集中アクセスへの対策をとってください。

注意事項• GWサーバーからの負荷テスト環境はございませんので、⾃社でのご⽤意をお願いします。• ボットサーバーでリクエストが受けきれなくなった場合、 GWサーバーのキューにもボットサーバーが受信しきれないリクエストが溜まってしまうことがあります。著しくリクエストが蓄積されてしまった場合は他のチャネルへの影響が懸念されるため、やむを得ず溜まったリクエストを削除させていただきますので予めご了承ください。

• 数100万⼈規模など、⾮常に友だち数が多いアカウントの場合は、反応が⼤きいと考えられるキャンペーン等の発信を⾏われると、LINEプラットフォームの⾼負荷にもつながるため、メッセージは可能な限り⼀⻫配信は避けて、時間をずらして部分的な配信を複数⾏っていただく等ご調整いただきたくお願いいたします。

LINE Developersのご案内もあわせてご確認ください。https://developers.line.biz/ja/docs/messaging-api/development-guidelines/

• アカウントの「検索結果での表⽰」を「表⽰」設定にした直後• スポンサードスタンプの実施直後• すべての友だちへの⼀⻫送信でユーザーにメッセージを発信した直後

(特にキャンペーン等、ユーザーの⾼い反応を期待している場合)• ニュースやテレビなどのメディアに取り上げられた場合など

また、時間帯では、昼12時台、または17時〜24時までの間は特にアクセスが集中する可能性がございますのでご注意ください。

アクセスが集中しやすいケース

Page 16: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

E-1) WebhookのON/OFF設定LINE Developersの「Messaging API設定」からは「Webhookの利⽤」のオン/オフの設定が可能です。LINE Official Account Manager の「応答設定」からは「Webhook送信」「⾃動応答メッセージ」「友だち追加時あいさつ」のオン/オフの設定が可能です。「Webhook送信」の設定情報は、ツール間で同期されます。設定の組み合わせで、4パターンを設定することができます。(次ページ参照)

※ご利⽤の際は必ずテストアカウントで検証および実装のうえ、問題ないことを確認してから本番アカウントへの適⽤をお願いいたします。

LINE Developers Messaging API設定

友だち追加やユーザーからのメッセージ送信などのイベントが発⽣した際に、GWサーバーからボットサーバーがリクエストを受信するか否かを設定します。受信する場合、受信先のWebhook URLを設定します。

「Webhook」設定

「メッセージ」画⾯にて設定した⾃動応答メッセージを返すか否かを設定します。

「⾃動応答メッセージ」設定

「メッセージ」画⾯にて設定した友だち追加あいさつのメッセージを返すか否かを設定します。

「友だち追加時あいさつ」設定

LINE Official Account Manager 応答設定

Page 17: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

E-2) WebhookのON/OFF設定の選択肢について

①「Webhook送信」を「利⽤する」 + 「⾃動応答メッセージ」/「友達追加時あいさつ」を「利⽤する」

Messaging APIでリクエストを受信しつつ、LINE Official Account Managerに登録した各設定メッセージを応答に利⽤します。

注意事項LINEボット⽤アカウントでは、「友だち追加時あいさつ」を「利⽤する」に設定した場合、ブロック解除したときも友だち追加時のあいさつメッセージが送信されますので予めご了承ください。

②「Webhook送信」を「利⽤する」 + 「⾃動応答メッセージ」/「友達追加時あいさつ」を「利⽤しない」

Messaging APIでリクエストを受信し、APIを経由してボットサーバーよりメッセージを応答します。

③「Webhook送信」を「利⽤しない」 + 「⾃動応答メッセージ」/「友達追加時あいさつ」を「利⽤する」

Messaging APIではリクエストを受信せず、LINE Official Account Managerに登録した各設定メッセージを応答に利⽤します。

④「Webhook送信」を「利⽤しない」 + 「⾃動応答メッセージ」/「友達追加時あいさつ」を「利⽤しない」

Messaging APIではリクエストを受信せず、LINE Official Account Managerも利⽤しません。ユーザーに⼀切のメッセージが応答されません。レギュレーション上、この設定は許可しておりませんので、この組み合わせのご利⽤はお控えください。

Page 18: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

F) その他注意事項

F-1. 1つのリクエストに複数のイベントが含まれる場合を想定した処理1度のWebhookのリクエストに含まれるイベントは1個とは限りません。同タイミングで⼤量のメッセージ送信や友だち追加があったとき、1度のWebhookのリクエストに複数のイベントが含まれていることがありますので、予めそのようなリクエストを受信することを想定のうえ、実装してください。

その他にも、以下の点を想定していないとシステムトラブルに繋がる可能性がありますのでご注意ください。

F-2. Webhookイベントオブジェクトのプロパティ受信処理Messaging APIの機能に追加または変更があったときに、プロパティが追加される場合があります。将来新しいプロパティを含むイベントオブジェクトを受信しても不具合が発⽣しないようにサーバーを実装してください。詳細な仕様は、https://developers.line.biz/ja/reference/messaging-api/#webhook-event-objects を参照してください。

F-3. リクエストヘッダーの⽂字についてリクエストヘッダーのフィールド名は、⼤⽂字・⼩⽂字の表記が予告なく変更される可能性があります。Webhookを受け取るボットサーバー側では、ヘッダーフィールド名の⼤⽂字⼩⽂字を区別せずに扱ってください。例えば、X-Line-Signatureとx-line-signatureどちらの場合であっても署名の検証ができるように実装する必要があります。

Page 19: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

G) 推奨のリクエスト処理⼿順

破棄

署名検証

リクエスト内のイベントを分割

署名不⼀致

署名が⼀致

リクエストをWebhook URLで受信リクエストを送信

DB/メモリなどへ書き込んで、ステータスコード200を返却リクエスト送信処理完了

1秒以内⽬安

各イベントに対し処理を⾏う

GWサーバー ボットサーバー

Page 20: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

H) GWサーバー → ボットサーバーの通信エラー

GWサーバーからボットサーバーへリクエストを送信したときにボットサーバー側に何かしらの問題が発⽣した場合、通知メールの送信やLINE Developersサイト上の表⽰によってお知らせいたします。エラーが発⽣した場合、必要に応じてご確認と対処をお願いいたします。

メール受信対象者 ・LINE Developersにて、対象ChannelのChannel基本設定に登録されているメールアドレス・LINE Developersにて、対象Channelに対して権限を保有している⽅の登録メールアドレス (※)

H-2) 通知内容例

エラー参照ページ https://developers.line.biz/console/channel/<Channel_ID>/statistics/errors/(LINE Developersサイトの 統計情報 > エラー情報 のページとなります)

H-1) 通信エラーアラートについて

(※)LINE Developersサイト (https://developers.line.biz/) における”Admin” の権限

GWサーバーからボットサーバーへの通信でエラーが発⽣した場合の通知内容について、詳細はLINE Developersのドキュメントをご確認ください。https://developers.line.biz/ja/docs/partner-docs/error-notification/※通信エラーアラートは認証プロバイダー配下のチャネルでのみご利⽤いただけます。

ドキュメントをご参照ください。https://developers.line.biz/ja/docs/partner-docs/error-notification/#content

Page 21: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

APIリクエスト送信時の注意事項

Page 22: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

APIリクエスト送信時の注意点 –INDEX-A)チャネルアクセストークンの発⾏

B)チャネルアクセストークンの⾃動更新

C) チャネルアクセストークンの有効上限数について

D)メッセージ送信リクエストレスポンス

E) APIリクエストのリトライ

F) リクエストの制限値

G)応答(reply)メッセージとプッシュ(push)メッセージ

H)HTTPSコンテンツの使⽤

Page 23: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

A) チャネルアクセストークンの発⾏メッセージ送信などのAPIを呼び出す際は、リクエストヘッダにチャネルアクセストークンという値を含めて送信します。このトークンの値により、リクエスト元のチャネルの判別や、正しいリクエストかどうかの判定などをGWサーバーが実施します。

access_token: 123456abc=

expires_in: 2592000

token_type: Bearer

LINE Developersからの⼿動発⾏により有効期限の⾮常に⻑いチャネルアクセストークンの発⾏が可能ですが、セキュリティの観点から、APIによって有効期限30⽇のチャネルアクセストークンを発⾏していただくことを推奨しています。

詳細な仕様は、APIリファレンスの「チャネルアクセストークンを発⾏する」の項⽬を参照してください。https://developers.line.biz/ja/reference/messaging-api/#issue-channel-access-token

お客様側システム

LINE プラットフォーム

GWサーバー

API

Callingサーバー

Page 24: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

B) チャネルアクセストークンの⾃動更新チャネルアクセストークンには、有効期限が設定されており、それを過ぎると利⽤できなくなってしまいます。そのため、定期的にチャネルアクセストークンを再度取得するシステムを構築するようにしてください。

チャネルアクセストークンは複数個発⾏することができますが、運⽤できる数には上限がありますので、アカウントを複数のサービス、サーバーと連結して利⽤する場合においては、新しいトークンを正常に発⾏できた後は、古いトークンを取り消し(Revoke)することを推奨します。

トークン Bトークン A トークン Dトークン C

トークン Aを取り消し

Callingサーバーバックエンドで発⾏されたトークンを利⽤

バックエンド サーバーバックエンドでトークンの発⾏および取り消し(Revoke)を実施

トークン Bを発⾏

トークン Cを発⾏

トークン Bを取り消し

トークン Dを発⾏

トークン Cを取り消し

トークン Eを発⾏

詳細な仕様は、APIリファレンス の 「チャネルアクセストークンを発⾏する」の項⽬を参照してください。https://developers.line.biz/ja/reference/messaging-api/#issue-channel-access-token

Page 25: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

C) チャネルアクセストークンの有効上限数についてチャネルアクセストークンの種類ごとに同時に発⾏できる上限が存在します。https://developers.line.biz/ja/docs/messaging-api/channel-access-tokens/

種類 発⾏上限 上限を超過した場合の動作 チャネルアクセストークンが無効化される条件

短期のチャネルアクセストークン ※1 30個 発⾏順に既存の短期のチャネルアクセストークンが無効化

• 有効期限の超過• 発⾏上限の超過• チャネルアクセストークンの

取り消し(revoke API)の実⾏

⻑期のチャネルアクセストークン ※2 1個 既存の⻑期のチャネルアクセストークンが無効化

• 発⾏上限の超過(再発⾏)• チャネルアクセストークンの

取り消し(revoke API)の実⾏

任意の有効期間を指定できるチャネルアクセストークン ※3 30個 APIがエラーとなり

追加で発⾏ができない

• 有効期限の超過• チャネルアクセストークンの

取り消し(revoke API)の実⾏

※1 ショートタームチャネルアクセストークン(APIで発⾏)※2 ロングタームチャネルアクセストークン (LINE Developersコンソールで発⾏)※3 チャネルアクセストークンv2.1 (APIで発⾏)

Page 26: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

D) メッセージ送信リクエストレスポンスメッセージ送信を⾏った際、下記のようなレスポンスが返却されます。

成功時のレスポンス サンプル

{}

失敗時のレスポンス サンプル

{"message":"The request body has 2 error(s)","details":[{"message":"May not be empty","property":"messages[0].text"},{"message":"Must be one of the following values:

[text, image, video, audio, location, sticker, richmessage, template, imagemap]", "property":"messages[1].type"} ]

}

{"message":"Invalid reply token"

}

送信したリクエストにエラーが発⽣した場合、内容に応じて以下のようなエラーレスポンスが返ります。エラー発⽣時にmessageやdetailsの内容を確認できるようにしておくと、問題解決がスムーズになります。なお、エラーレスポンスの内容(Body)は保証されず、予告なく変更される場合があります。

成功時はステータスコード200 OKと共に空のJSONオブジェクトを返します。

レスポンスヘッダーにはリクエストを⼀意に識別できるリクエストIDが返却されます。(X-Line-Request-Id)この値も確認できるようにしておくことをおすすめいたします。

https://developers.line.biz/ja/reference/messaging-api/#response-headers

Page 27: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

E) APIリクエストのリトライMessaging APIサーバーの障害発⽣時以外でも、ネットワーク接続状況や、その他の要因によりAPIリクエストが正常に完了しないことや、レスポンスが正常に得られない事象は発⽣しうるものとなります。

そのような場合に備え、X-Line-Retry-Keyを⽤いて、メッセージの重複送信が発⽣しないように、安全にリクエストをリトライできるように実装を⾏うことを推奨します。

https://developers.line.biz/ja/docs/messaging-api/retrying-api-request/

お客様側システム

LINE プラットフォーム

GWサーバー

APIrequest

Callingサーバー

Status code 500Internal Server

Error

APIrequest

X-Line-Retry-Key:123e4567-e89b-12d3-a456-426655440001

サーバーやネットワーク障害時の負荷軽減のため、リクエストの再試⾏間隔はエクスポネンシャルバックオフにより制御してください。

X-Line-Retry-Key:123e4567-e89b-12d3-a456-426655440001

Retry

Page 28: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

F) リクエストの制限値LINEボットで使⽤するメッセージには、1回のリクエストで送信できるメッセージの⻑さや、⼀定時間内にリクエストできる数に制限があります。

{"message":"The request body has 1 error(s)","details":[{"message":"Length must be between 0 and 5000","property":"messages[0].text"}] }

テキストメッセージの⻑さの上限を超えた場合に返却されるエラーレスポンス

{"message":"The API rate limit has been exceeded. Try again later."}

⼀定時間内に⼤量のリクエストが連続で送信された場合は、以下のようなエラーが返るようになります。現在のレート制限は、 LINE Developersの以下のドキュメントをご参照ください。https://developers.line.biz/ja/reference/messaging-api/#rate-limits

本番アカウント・テストアカウントに関わらず、テストを⽬的に⼤量のリクエストを送信することはお控えください。送信における負荷テストを⾏う場合は、必ず⾃社の環境内で実施してください。(他のアカウントに影響が出ないようにするため)

注意事項LINE Developersのご案内もご確認ください。https://developers.line.biz/ja/docs/messaging-api/development-guidelines/

レート制限を超えた場合に返却されるエラーレスポンス

テキストメッセージの⻑さの上限は5000⽂字です。上限値を越えるリクエストが届いた場合、以下のエラーレスポンスが返却されます。

Page 29: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

G) 応答(reply)メッセージとプッシュ(push)メッセージ

ユーザー、グループ、トークルームからのメッセージに応答するAPIです。Webhookで通知されたイベントの中で、返信可能なイベントに付与されている応答トークン(replyToken)を指定することで、イベントの送信元にメッセージを返信することができます。

ユーザーからのメッセージ有無に関わらず、任意のタイミングでユーザー、グループ、トークルームにメッセージを送信するAPIです。Push

Reply

※Reply利⽤時の注意事項• replyTokenは⼀定時間以内に使⽤しないと無効になります。

replyのユーザーエクスペリエンスの観点から、即時返信をしていただくようお願いいたします。• replyTokenは1回のみ利⽤可能です。

詳細な仕様や設定⽅法は、APIリファレンスの応答メッセージおよびプッシュメッセージの項⽬をご確認ください。応答メッセージ : https://developers.line.biz/ja/reference/messaging-api/#send-reply-message

プッシュメッセージ : https://developers.line.biz/ja/reference/messaging-api/#send-push-message

Page 30: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

H) HTTPSコンテンツの使⽤

{ “type”: “image”, “originalContentUrl”: "https://example.com/original.jpg", "previewImageUrl": "https://example.com/preview.jpg"

}

ボットサーバー LINEアプリImage

Video

Audio

Imagemap

Template

※サンプル (Image)

LINEアプリ上に画像、動画、⾳声など下記オブジェクトを送信する場合、該当のオブジェクト内にて指定するURLはhttps(TLS 1.2以降)にしていただく必要がございます。

HTTPS over TLS1.2

※Apple社のiOSガイドラインに準拠する内容となります。httpや、 https(TLS 1.2未満)の場合、コンテンツが正常に表⽰できない場合がございます。

Flex Message

Page 31: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEログイン

Page 32: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEログイン

※ログインにはユーザーがLINEアプリ内で、メールアドレスとパスワードを登録しておく必要があります。(その他 > 設定 > アカウント> メールアドレス登録)

PC版ログイン画⾯SP版ログイン画⾯

LINEログインとは、ユーザーが持つLINEアカウントの情報を利⽤したログイン機能をお客様のウェブサービスやスマートフォンアプリに実装していただくことができる機能です。ユーザーがLINE社で提供するログイン画⾯から、LINEに登録しているメールアドレスとパスワードでログインすることで、企業へユーザーの情報が渡ります。それを⾃社の情報と紐付ければ、そのユーザー特有のメッセージを届けることができるようになります。

詳細な仕様や設定⽅法は、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/docs/line-login/integrate-line-login/

Page 33: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEログインの認証LINEログインの認証と認可のプロセスはOAuth 2.0とOpenID® Connectプロトコルに基づいています。ブラウザでの遷移経路は下記のとおりとなります。

チャネル

Logged in

初回ログイン

2回⽬以降

OAuth2.0

注意事項アプリ内ブラウザでは⾃動ログインが動作しますが、外部ブラウザでは、シングルサインオン画⾯と呼ばれる画⾯を経由してのログイン、⾃動ログイン、ブラウザ上に表⽰されるログインダイアログにLINEに登録しているメールアドレスとパスワードを⼊⼒してのログイン等がございます。

⾃動ログインが動作する条件については、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/docs/line-login/integrate-line-login/#authentication-process

https://developers.line.biz/ja/faq/#how-does-auto-login-work

Page 34: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

(1) Callback URLの設定LINE Developersの「LINEログイン設定」ページで、Callback URLが設定できます。LINEでの認証完了後のリダイレクト先として利⽤したいページのURLを登録してください。複数のURLを登録する場合は、改⾏して登録してください。

https 必須URL完全⼀致複数登録の場合は改⾏

詳細な仕様や設定⽅法は、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/docs/line-login/integrate-line-

login/#%E3%83%AA%E3%82%BF%E3%82%99%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88%E5%85%88%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B

Page 35: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

(2) 認証と認可LINEログインの認可を要求するURLは以下のとおりです。

このルールで⽣成したURLにユーザーがアクセスすると、ユーザーはメールアドレス/パスワードの⼊⼒等の適切な認証⽅法でLINEにログインします。

認証⽅法の説明https://developers.line.biz/ja/docs/line-login/integrate-line-login/#authentication-process

⼀部パラメータの概要redirect_uri ︓LINEでの認証完了後にリダイレクトするページです。

LINE Developersコンソールで事前に設定したCallback URLと⼀致する必要があります。scope ︓ユーザーに許可を求める権限を指定します。(複数指定可能)bot_prompt︓「ボットを友だち追加するオプション」を表⽰する場合に指定します。

省略するとオプションは表⽰されません。(※後述の「⾃動友だち追加機能」をあわせてご参照ください)

URL呼び出し時のパラメータの詳細は、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/docs/line-login/integrate-line-login/#making-an-authorization-request

https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=1234567890&redirect_uri=https%3A%2F%2Fsample.com%2Fauth&state=12345abcde&scope=openid%20profile%20email&nonce=

09876xyz&prompt=consent&bot_prompt=normal

認証URLサンプル

URL : https://access.line.me/oauth2/v2.1/authorize

Page 36: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

(3) リダイレクト

https://sample.com/auth?code=dibBclI12nWH8KPRZCyQ&state=12345abcde&friendship_status_changed=true

ログインが完了し、ユーザーがアクセス権を付与すると、以下のクエリパラメータが付与された状態でCallback URLにリダイレクトされます。

リダイレクトURLサンプル

Callback URLレスポンス時の詳細は、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/docs/line-login/integrate-line-login/#receiving-the-authorization-code

⼀部パラメータの概要friendship_status_changed︓ログインによって公式アカウントが友だち追加またはブロック解除された場合 trueログインによって友だち追加やブロック解除はされなかった場合 falseログインを⾏った時点で既に友だちだった場合 false

ログイン時に「ボットを友だち追加するオプション」が表⽰されなかった場合は、このパラメータは出現しません。(既に同意済みであった場合や、bot_promptパラメータが指定されていなかった場合など)

Page 37: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

(4) アクセストークン取得APIリダイレクト時のパラメータに指定されるcode値を利⽤して下記APIリクエストを⾏い、アクセストークンを取得します。

HTTP Method POST

Endpoint URL https://api.line.me/oauth2/v2.1/token

Request header Content-Type: application/x-www-form-urlencoded

APIの仕様詳細は、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/docs/line-login/integrate-line-login/#get-access-token

{"access_token":"bNl4YEFPI/hjFWhTqexp4MuEw5YPs...","token_type":"Bearer","expires_in":2591977,"refresh_token":"8iFFRdyxNVNLWYeteMMJ","scope":"profile""id_token": "do5d2DokjdF2w35jVe…."}

レスポンスサンプル

APIリクエストに成功すると、以下の情報がレスポンスで返ります。

Page 38: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

(5) IDトークン取得IDトークンとはLINEログインでの認証の結果得ることができるトークンの⼀種です。その仕様はOpenID Connectの標準規格に準拠しています。IDトークンは、前述の認証URLのscopeパラメータに”openid”が含まれていた場合にアクセストークン取得APIのレスポンスとして返却されます。

{"access_token": "bNl4YEFPI/hjFWhT……………..qexp4MuEw5YPs","token_type": "Bearer","expires_in": 2591977,"refresh_token": "8iFFRdyxNVNLWYeteMMJ","scope": "profile","id_token": "bWFpbCI6ICJqYW5lZ…………….G9lQGV4YW1wbGUuY29t"}

アクセストークン取得API レスポンスサンプル

注意事項• 第三者からの不正な悪⽤からユーザーを守るため、state, nonce, 署名等による検証を⾏っていただけますようお願いいたします。• IDトークンに含まれるユーザー情報は、ユーザーがLINEログインにより認証を完了した時点の値になっています。常に最新の情報とは限りません。

IDトークンの処理詳細は、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/docs/line-login/integrate-line-login/#verify-id-token

備考 IDトークンによりメールアドレス等の情報を取得する場合は、その情報を取得するための権限をチャネルに付与する必要があります。権限付与の条件や申請⽅法は担当営業までお問い合わせください。

Page 39: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

(6) ユーザープロフィール取得アクセストークンを利⽤してプロフィール取得のAPIを実⾏すると、ユーザーID(userId)を含むプロフィール情報が取得できます。

HTTP Method GETEndpoint URL https://api.line.me/v2/profileRequired request header Authorization: Bearer ACCESS TOKEN

APIの仕様詳細は、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/docs/social-api/getting-user-profiles/

Page 40: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEログイン 処理フローWEB Browser お客様側システム LINE プラットフォーム

LINEログイン⽤の貴社設定のリダイレクトページへ(ユニークなstate値を⽣成するページへ)

ユニークなstate値を⽣成

access.line.meへリダイレクト

リクエストをValidate

同意画⾯

情報提供に同意設定したRedirect URLへリダイレクト

認可コード, stateを取得 (via Query parameter)

state値をValidate

認可コードを付けてAPIリクエスト( https://api.line.me/oauth2/v2.1/token )

リクエストをValidate

アクセストークン、IDトークン等を返却

Next sessionページへ

アクセストークンを付けてAPIリクエスト(https://api.line.me/v2/profile)

userId等の情報を返却

IDトークンをデコード どちらかの⽅法によってuserId等を取得※電話番号やメールアドレスは、IDトークンからのみ取得可能

Page 41: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEログインによるアカウント連携のしくみ (1/2)

LINE

マイページなど

ログイン画⾯ 同意画⾯

⾃社

https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=1234567890&redirect_uri=https%3a%2f%2fsample%2ecom%2flogin%2f&state=abc

Gatewayサーバ

https://sample.com/login/?code=b5fd32eacc791df&state=abc

Gatewayサーバ

ボットサーバー

⾃社ログインページ

会員DB

リダイレクトURL

https://example.com/login

会員情報を呼び出し(会員情報を必要としない場合もあります)

認可コードを発⾏

認可コードを取得

アクセストークン・IDトークンなどを

レスポンス

APIリクエスト

指定のURLへリンクする

LINEに登録のメールアドレスとパスワードでログイン。

次ページへ続く

Page 42: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEログインによるアカウント連携のしくみ (2/2)

LINE

⾃社

Gatewayサーバ

ボットサーバー 会員-BCDB

登録完了ページ

userId等をレスポンス

会員情報とuserIdを紐付け

アクセストークンを利⽤して

APIリクエスト

前ページより続く IDトークンを

デコードしてuserId等を取得

どちらかの⽅法によってuserId等を取得※電話番号やメールアドレスは、IDトークンからのみ取得可能

Page 43: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

⾃動友だち追加機能(1)LINEログインでは、LINE側で⽤意した「ボットを友だち追加するオプション」を⽤いることで⾃動的に友だち追加を⾏います。

• 認証URLのパラメータ指定のみで、友だち追加機能を使⽤できます。• ブロックしているユーザーもブロック解除することができます。

詳細は、以下のドキュメントをご参照ください。https://developers.line.biz/ja/docs/line-login/link-a-bot/

【必要な設定】• ボットを友だち追加するオプションを有効にするには、「ボットをLINEログインのチャネルにリンクする」作業が必要となります。

【オプション有効化のための要件】• LINEログインを利⽤する権限(「WEB」または「NATIVE_APP」)が付与されたチャネルがあること。• 同じプロバイダーが持つMessaging APIチャネルに関連づけられているボットが1つ以上存在すること。• 設定を⾏うユーザーがLINE Official Account Managerにおいて関連づけるボットの管理者権限を持っていること。• 設定を⾏うユーザーがLINE Developersにおいて対象のチャネルのAdmin権限を持っていること。

【注意点】• ログイン時に友だち追加される公式アカウントが変更されます。• ボットを選択する際、該当チャネルが利⽤している公式アカウント以外の関連付けを原則禁じます。• 変更は即時反映のため、誤って他アカウント(テストアカウント等)を設定することがないよう、操作には⼗分にご注意ください。• LINEログインチャネルが認証プロバイダー配下に存在する場合、友だち追加(ブロック解除)がデフォルトで選択(チェック)された状態となります。

Page 44: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

⾃動友だち追加機能(2)⾃社サイトなどからLINEで友だちになっていないユーザーに対してLINEログインを⾏わせた際に、チャネル認可画⾯の下部に「ボットを友だち追加するオプション」を表⽰することによって、ログインと同タイミングでそのユーザーに⾃社アカウントを友だち追加させることができます。

友だち追加してリダイレクト設定先に遷移

友だち追加せずリダイレクト設定先に遷移

チェックON

チェックOFF

備考 LINEログインチャネルが認証プロバイダー配下に存在する場合、友だち追加(ブロック解除)がデフォルトで選択(チェック)された状態となります。

Page 45: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

⾃動友だち追加機能(3)

https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=1234567890&redirect_uri={RedirectURL}&state={State}

&scope=openid%20profile&bot_prompt=normal

LINEログイン時に「ボットを友だち追加するオプション」を表⽰させる場合ログイン認証⽤URLに “bot_prompt” のパラメータを付与します。

パラメータが含まれていない場合は、「ボットを友だち追加するオプション」は表⽰されません。

認証URLサンプル

パラメータの仕様詳細は、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/docs/line-login/link-a-bot/#displaying-the-option-to-add-your-line-official-

account-as-a-friend

Page 46: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

⾃動友だち追加機能(4)

https://sample.com/auth?code=dibBclI12nWH8KPRZCyQ&state=12345abcde&friendship_status_changed=true

ログイン完了後、ユーザはredirect_uriで指定されたURLにリダイレクトされます。この時、ログインによって友だち追加されたかどうかを⽰すfriendship_status_changedパラメータが追加されます。

ログイン時にボットを友だち追加するオプションが表⽰されなかった場合は、このパラメータは出現しません。(例︓既に同意済みであった場合や、bot_promptパラメータが指定されていなかった場合など)

リダイレクトURLサンプル

パラメータの仕様詳細は、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/docs/line-login/link-a-bot/#use-friendship_status_changed

Page 47: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

友だち状況確認APIユーザがアカウントと友だちか否かを確認できるAPIを提供します。

LINEログインによって得られたアクセストークンを利⽤して「友だちか否かを確認するAPI」を実⾏すると、該当のユーザがアカウントと友だちになっているかどうかが分かります。

{"friendFlag":true

}

レスポンス

HTTP Method GET

Endpoint URL https://api.line.me/friendship/v1/status

Required request header Authorization: Bearer ACCESS TOKEN

APIの仕様詳細は、LINE Developersの下記項⽬をご確認ください。https://developers.line.biz/ja/reference/social-api/#get-friendship-status

※profileのスコープを持つアクセストークンが必要です

Page 48: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LINEログイン – 補⾜

Page 49: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

stateによる不正利⽤対策ついて

リダイレクトページ

(LINE Developersに登録したページ)

前項”state”パラメータは、発⾏されたURLを第三者に送りログインさせることで、不正にその第三者になりすまし決済や退会などをしてしまうような悪⽤(CSRF - Cross Site Request Forgeries)を防ぐために使⽤します。URLを⽣成したセッション情報をstateパラメータに保持させ、リダイレクトURLのstateの値とセッション情報を照合するなどして、不正利⽤を防⽌してください。

https://access.line.me/~~~?client_id=000&redirectUrl=http://your.site/~~~&state=ABCD

(例)http://your.site/line/login/

http://your.site/line/loginBack/?code=123&state=ABCD

http://your.site/mypage/

ログイン完了リダイレクト

ページ

stateが⼀致しているか検証

ユニークなstate値を⽣成する

例) state: ABCD

stateによる検証例

※stateパラメータに設定する値を「固定値」や「容易に推測できる値」にはしないことを、強く推奨いたします。

Page 50: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

OS別 LINEログインのユーザーフロー例(iOS)

LINEアカウント トーク上

任意Redirect URL

ページ

同意画⾯(初回のみ)

下記は推奨UXとなりますので、実際は企業様の仕様などを考慮し検討ください。⾃動ログインとは、LINEのメールアドレス/パスワードの⼊⼒等ユーザーの操作なしでLINEログインさせることを指しております。シングルサインオン(SSO)とは、確認画⾯でログインボタンをクリックしてログインさせることを指しております。※⾃動ログイン、SSOはLINEアプリ側の処理のため、企業様は通常のLINEログインのシステム対応をいただくのみとなります。※LINEログイン実⾏後、取得できるtokenをクエリパラメータ/Cookie等を使ってログイン時まで維持いただければ、貴社IDとの紐付けができます。

任意Redirect URL

ページ

貴社サイト

⾃社ID紐づけ

⾃社ID紐づけ

①アプリ内ブラウザでのログイン InAppBrowser内

2回⽬以後

link:LINEログイン⽤の貴社設定のリダイレクトページへ

(ユニークなstate値を⽣成するページへ)

貴社サイト

⾃動ログイン

⾃動ログイン、シングルサインオン、メールアドレス・パスワード⼊⼒のいずれか

ML/PW⼊⼒

貴社Web(Safari) LINEアプリ⾃動⽴ち上げ 同意画⾯(初回のみ)②外部ブラウザ(Safari)でのログイン

2回⽬以後

ID

Password

ログイン

新規作成

シングルサインオン(SSO)

(⾃動ログイン)

Page 51: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

OS別 LINEログインのユーザーフロー例(Android)

LINEアカウント トーク上

任意Redirect URL

ページ

同意画⾯(初回のみ)

下記は推奨UXとなりますので、実際は企業様の仕様などを考慮し検討ください。⾃動ログインとは、LINEのメールアドレス/パスワードの⼊⼒等ユーザーの操作なしでLINEログインさせることを指しております。シングルサインオン(SSO)とは、確認画⾯でログインボタンをクリックしてログインさせることを指しております。※⾃動ログイン、SSOはLINEアプリ側の処理のため、企業様は通常のLINEログインのシステム対応をいただくのみとなります。※LINEログイン実⾏後、取得できるtokenをクエリパラメータ/Cookie等を使ってログイン時まで維持いただければ、貴社IDとの紐付けができます。

任意Redirect URL

ページ

貴社サイト

⾃社ID紐づけ

⾃社ID紐づけ

①アプリ内ブラウザでのログイン InAppBrowser内

2回⽬以後

link:LINEログイン⽤の貴社設定のリダイレクトページへ

(ユニークなstate値を⽣成するページへ)

貴社サイト

⾃動ログイン

⾃動ログイン、シングルサインオン、メールアドレス・パスワード⼊⼒のいずれか

ML/PW⼊⼒

貴社Web(Safari) LINEアプリ⾃動⽴ち上げ 同意画⾯(初回のみ)②外部ブラウザ(Safari)でのログイン

2回⽬以後

ID

Password

ログイン

新規作成

シングルサインオン(SSO)

(⾃動ログイン)

Page 52: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

外部ブラウザでのログインフロー(イメージ)LINEログイン時の認証⽅法の詳細については以下「認証のプロセス」をご参照ください。https://developers.line.biz/ja/docs/line-login/integrate-line-login/#authentication-process

任意Redirect

URLページ

ID

ログイン

新規作成

権限未同意等

過去にLINEログイン済︖

(Cookie有り︖)

未同意の権限の要求無し 未ログイン

Cookieなし

動作する

UniversalLinkまたは

暗黙的インテントが動作する︖

ログイン済Cookie有り

シングルサインオン(SSO)

⾃動ログイン

動作しない

メールアドレス/PW⼊⼒

ログイン画⾯や確認画⾯等表⽰は無し

OSの機能のため、動作可否はLINE側から制御できず、

外部から判断する条件も無い

Page 53: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

遷移先ブラウザの設定⽅法について下記のクエリパラメーターを設定いただくことで、遷移先のブラウザを選択することが可能です。※Android版LINEとiOS版LINEで仕様が異なりますので、ご注意ください。

ブラウザ 設定⽅法

アプリ内ブラウザIn App Browser

パラメータなし※ただし、Android版LINEのQRコードリーダーでQRコードを読み取った場合はカスタムタブへ遷移します。

外部ブラウザ openExternalBrowser=1(またはtrue)をURLクエリパラメータに設定

カスタムタブ openInAppBrowser=0(またはfalse)をURLクエリパラメータに設定※ただし、Android版LINE(8.15.0以降)のみです。

アプリ内ブラウザIn App Browser

外部ブラウザ

カスタムタブ

openExternalBrowser=1

openInAppBrowser=0

パラメータなし

openExternalBrowser=1

パラメータなし

パラメータなし

openExternalBrowser=1

トークルームタイムライン

QRコードリーダー

Android版LINEの遷移先ブラウザ iOS版LINEの遷移先ブラウザ

トークルームタイムライン

QRコードリーダー

Page 54: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

その他関連機能

Page 55: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

URLスキームについてLINEには、LINEボットをさらに便利に使えるURLスキームがいくつか存在します。詳細はLINE Developersのドキュメントをご確認ください。https://developers.line.biz/ja/docs/line-login/using-line-url-scheme/

A) https://line.me/R/oaMessage/{%40ACCOUNT_ID}/?{TEXT_MESSAGE}

リンクをタップすると任意の公式アカウントのトーク画⾯が開き、指定したテキストがメッセージ⼊⼒欄にフィルインされます。友だちになっていないアカウントだった場合は、友だち追加の画⾯を間に挟み、トーク画⾯に遷移します。フィルインしたいメッセージがマルチバイト⽂字を含む場合は、UTF-8を⽤いてURLエンコードしてください。

サンプル︓ https://line.me/R/oaMessage/%40linejpen/?%e3%81%93%e3%82%93%e3%81%ab%e3%81%a1%e3%81%af

B) https://line.me/R/ti/p/{%40ACCOUNT_ID}

リンクをタップすると任意の公式アカウントを友だち追加する画⾯に遷移します。PCからアクセスした場合はQRコードが表⽰されます。

サンプル︓ https://line.me/R/ti/p/%40linenews

C) https://line.me/R/msg/text/?{TEXT_MESSAGE}

任意のテキストを誰かにメッセージやタイムラインでシェアするときに使うボタンです。シェアしたいメッセージがマルチバイト⽂字を含む場合は、UTF-8を⽤いてURLエンコードしてください。

サンプル︓ https://line.me/R/msg/text/?%e3%81%93%e3%82%93%e3%81%ab%e3%81%a1%e3%81%af

D) https://line.me/R/nv/locationユーザー端末のトーク画⾯上において、現在の位置情報を共有する画⾯に遷移します。このURLスキームは、ボットとのトーク画⾯以外では動作いたしません。

Page 56: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

LIFF (LINE Front-end Framework)LIFF (LINE Front-end Framework) は、LINE上で動作するWebアプリケーションプラットフォームです。LINEアプリ上の各画⾯上でWebブラウザを⽴ち上げ、プラットフォームからユーザーIDやトークID(チャットルームで開かれた

場合のみ)や各種機能を利⽤するためのトークンを得ることができます。これらを利⽤し、ユーザー情報と連携したアプリケーションや、ユーザーに代わってそのチャットルームへメッセージ送信するアプリケーションを開発することが可能になります。

LIFFの画⾯は以下のURLスキームで開くことができます。

https://liff.line.me/{liffId}

詳細な仕様や設定⽅法は、LINE Developersの下記項⽬をご確認ください。

https://developers.line.biz/ja/docs/liff/

Page 57: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

権限管理についてLINEログインのサービス開始前(⾮公開状態)に動作テストを⾏う際には、LINE Developersの対象チャネルの権限管理で利⽤するユーザーを登録していただく必要がございます。

https://developers.line.biz/ja/docs/line-login/managing-roles/(チャネルの権限)

権限設定当該チャネルに対して編集/閲覧/テストできる権限。• Admin︓当該チャネルに関するすべての操作を実⾏可。• Member︓当該チャネルの名前やアイコンなど、基本的な情報と統計情報を閲覧可。• Tester︓当該チャネルの名前の閲覧可。また、⾮公開状態のチャネルにおいてLINEログインなどの動作テスト可。

※Admin権限を持っているユーザーは⾃動的にテスターとなり、端末でテストが可能。

権限設定

Page 58: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

スタンプの使⽤⽅法LINEボットでは、スタンプはid情報で送受信がされるため、それ単体ではそれが何のスタンプなのかわかりません。また、スタンプは提供元各社の権利に基づいて提供しているため、下記のようなルールでご利⽤いただきます。

企業アカウントからユーザーへスタンプ送信する場合企業アカウントが送信できるスタンプは以下の2タイプです。A. デフォルトスタンプ

こちらからID対応表をダウンロードしてください。 対応表はこちら

B. 企業が提供した、⾃社でライセンスを保有しているスタンプ(スポンサードスタンプなど)

こちらのスタンプを送信する時は、当社にてそのスタンプを送信できるようホワイトリストに設定する必要があります。なお、提供終了から半年以上が経過したスタンプもご利⽤いただけます。申請⽅法は、担当者よりご案内しておりますAPI利⽤ガイドラインをご確認ください。

ユーザーから企業アカウントへ送信されたスタンプを表⽰する場合企業がスタンプの画像を取得できるようなURLスキームを提供いたしますので担当者までお問い合わせください。その際、ライセンス違反となる使⽤⽅法ではないことを確認させていただくため、使⽤⽅法を明記してご連絡ください。

注意事項ただし以下のような場合は、⼆次利⽤となりライセンス契約違反となるためご利⽤は禁⽌させていただきます。・受信したスタンプ画像をテレビ番組やサイト、その他別媒体に転載する場合・LINEボットの運営⽬的の範囲を越えた画像使⽤となる場合

Page 59: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

絵⽂字の送受信について

LINE 4.1.x以前から存在している絵⽂字。約170種。各絵⽂字情報は、Unicodeで管理されていますので、それをエンコード・デコードして送受信を⾏います。画像とUnicodeの対応表は以下となります。

以下が、JavaでEmoticonを含む⽂字列を⽣成する際のサンプルコードになります。

LINE 4.2.0以降に登場した絵⽂字で、随時追加されています。LINEボットでは送信ができません。ユーザーから受信した場合、(full moon)(corn)(doberman)(airplain)などの⽂字列として届きます。

LINEの絵⽂字には以下の2種類が存在します。LINEボットに対応しているのはEmoticonと呼ばれる絵⽂字のみです。

Emoticon(LINEボット対応絵⽂字) Sticon(LINEボット⾮対応絵⽂字)

対応表はこちら

char[] charArray = Character.toChars(0x1000B2);String emoticon = new String(charArray);String message = "Hello world!" + emoticon;

Page 60: LINE...「LINE BOT セキュリテイガイドライン」「LINE BOT セキュリティチェックリスト」(弊社担当者よりご案内)のセキュリティ 基準を遵守、または同等以上の環境を構築している。<「LINE公式アカウントAPI利用ガイドライン」(弊社担当者

THANK YOU