# 開発ガイドライン
Messaging APIを使ったLINEボットを開発する際は、以下の開発ガイドラインに従ってください。
- LINEプラットフォームへの大量リクエストの禁止
- LINEプラットフォームを経由した負荷テストの禁止
- 同一ユーザーへの大量送信の禁止
- 存在しないユーザーIDへのリクエストの禁止
- ユーザーIDの属性を特定する行為の禁止
- IPアドレスによるアクセス制限の禁止
- 送信取消イベント受信時に推奨する処理
- ログ保存の推奨
LINEボット開発における基本ルールは、規約とポリシーに記載される内容に基づきます。
# LINEプラットフォームへの大量リクエストの禁止
負荷テストや動作テストを目的に、LINEプラットフォームへ、大量のリクエストを送信しないでください。
なお、いかなる目的でもレート制限を超えてリクエストを送信しないでください。
レート制限を超えて送信を行った場合、429 Too Many Requests
が返却され、エラーとなります。
レート制限内であっても以下のようなリクエストを高頻度で行うことは禁止します。
- 実際にナローキャスト配信に利用しないにもかかわらずオーディエンスの作成と削除を高頻度で繰り返し行う行為
- その他Messaging APIで提供される各機能の利用を目的としていないリクエストを高頻度で繰り返し行う行為
# LINEプラットフォームを経由した負荷テストの禁止
LINEプラットフォームから、ボットサーバーに負荷テストを行うサービスはありません。
負荷テストを目的に、大量のメッセージをLINEプラットフォームを経由して送信しないでください。ボットサーバーの負荷テストを行うための環境は、別途用意してください。
# 同一ユーザーへの大量送信の禁止
いかなる目的でも、同一ユーザーへメッセージを大量送信しないでください。
# 存在しないユーザーIDへのリクエストの禁止
リクエストを送信するときは、存在しないユーザーIDを指定しないでください。
# ユーザーIDの属性を特定する行為の禁止
特定のユーザーIDに対して、ユーザーの属性を特定する行為は行わないでください。また、属性の特定を目的としてオーディエンス管理のAPIを利用したり、ナローキャストメッセージを配信したりしないでください。
# IPアドレスによるアクセス制限の禁止
Webhookを受信するボットサーバーにおいて、Webhookリクエスト送信元のLINEプラットフォームのIPアドレスでアクセス制限をしないでください。
LINEプラットフォームのIPアドレスは開示していません。また、IPアドレスは予告なく変更される場合があります。
不正なアクセス元からのリクエストを拒否したい場合は、IPアドレスによる制限ではなく、Webhookの署名の検証を実施してください。
# 送信取消イベント受信時に推奨する処理
ユーザーがメッセージの送信を取り消すと、ボットサーバーに送信取消イベントが届きます。
送信取消イベントを受け取った場合、サービス提供者はユーザーがメッセージの送信を取り消した意図を尊重し、以降は対象のメッセージを見たり利用したりできないよう、最大限の配慮を持って対象のメッセージを適切に扱うことを推奨します。
詳しくは、「送信取消イベント受信時の処理」を参照してください。
# ログ保存の推奨
問題が発生した際に、開発者自身が原因や影響範囲の調査を円滑に行えるよう、Messaging APIに対するリクエストのログや、Webhook受信時のログを一定期間保存することを推奨します。
# Messaging APIに対するリクエストのログ
Messaging APIに対するリクエストを行った際は、以下の情報をログとして保存することを推奨します。
- レスポンスヘッダーのリクエストID(
x-line-request-id
) - APIリクエストを行った時間
- リクエストメソッド
- APIエンドポイント
- LINEプラットフォームからレスポンスされたステータスコード
具体的には、以下のような形式でログファイルなどに保存します。
リクエストID(x-line-request-id ) | APIリクエストを行った時間 | リクエストメソッド | APIエンドポイント | ステータスコード |
---|---|---|---|---|
8e36bade-c5d6-4d00-9e69-72244675a9a1 | Mon, 05 Jul 2021 08:14:35 GMT | POST | https://api.line.me/v2/bot/message/push | 200 |
# Webhook受信時のログ
ボットサーバーでLINEプラットフォームからのWebhookを受信した際は、以下の情報をログとして保存することを推奨します。
- Webhook送信元のIPアドレス
- Webhookを受信した時間
- リクエストメソッド
- リクエストのパス
- 受信したWebhookに対し、ボットサーバーがレスポンスしたステータスコード
具体的には、以下のような形式でログファイルなどに保存します。
送信元IPアドレス | Webhookを受信した時間 | リクエストメソッド | リクエストのパス | ステータスコード |
---|---|---|---|---|
203.0.113.1 | Mon, 05 Jul 2021 08:10:00 GMT | POST | /linebot/webhook | 200 |
運用するボットの要件等によっては、上記に加えて、たとえば以下のような情報を保存しておくことで、問題が発生した際の調査をより円滑に行うことができます。
- Messaging APIに対するリクエストのボディ
- APIリクエスト後にLINEプラットフォームから返却されたレスポンスのボディ
- LINEプラットフォームからWebhookが送信された際のリクエストヘッダーの署名(
x-line-signature
) - LINEプラットフォームから送信されたWebhookイベントオブジェクト
Messaging APIに対するリクエストのログや、LINEプラットフォームからボットサーバーへのWebhook送信時のログ等は、お問い合わせいただいても提供は行っておりません。ログの保存は、LINEボットを開発する開発者自身で行ってください。