メッセージに既読をつける

LINEのトークにおいて、ユーザーが送ったメッセージを相手が閲覧した場合、メッセージに既読がつきます。LINE公式アカウントでチャット機能を利用する場合、ユーザーからのメッセージには自動で既読がつきませんが、Messaging APIを利用することで、チャット機能を利用しつつ任意のメッセージに既読をつけることができます。

このページでは、ユーザーから送られたメッセージにMessaging APIを通して既読をつける方法について説明します。

Messaging APIでメッセージに既読をつけるための条件

LINE Official Account Managerの[応答設定]において、[チャット]がオフになっている場合、ユーザーから送られたメッセージには自動で既読がつきます。Messaging APIを通して既読をつけたい場合は、[チャット]がオンである必要があります。

Messaging APIでメッセージに既読をつける方法

ユーザーから送られたメッセージに既読をつけるには、以下の手順に従ってください。

  1. メッセージの既読トークンを取得する
  2. 「メッセージに既読をつける」エンドポイントを使用する

それぞれの手順について説明します。

1. メッセージの既読トークンを取得する

ユーザーがLINE公式アカウントに対してメッセージを送ると、LINEプラットフォームからボットサーバーに対してWebhookのメッセージイベントが送信されます。このイベントオブジェクトに、メッセージに既読をつけるためのmarkAsReadTokenプロパティ(既読トークン)が含まれています。

Webhookのメッセージイベントオブジェクトの例を以下に示します。なお、既読トークンに有効期限はありません。

json
{
  "destination": "xxxxxxxxxx",
  "events": [
    {
      "type": "message",
      "webhookEventId": "01FZ74A0TDDPYRVKNK77XKC3ZR",
      "message": {
        "id": "444573844083572737",
        "type": "text",
        "quoteToken": "q3Plxr4AgKd...",
        "markAsReadToken": "30yhdy232...", // 既読トークン
        "text": "Hello, world!"
      },
      // 省略
    }
  ]
}

2. 「メッセージに既読をつける」エンドポイントを使用する

メッセージに既読をつけるには、手順1で取得した既読トークンを用いて、「メッセージに既読をつける」エンドポイントを使用します。以下のようなリクエストを実行することで、指定したメッセージと、それ以前に送られたすべてのメッセージに既読をつけることができます。

sh
curl -v -X POST https://api.line.me/v2/bot/chat/markAsRead \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {channel access token}' \
-d '{
  "markAsReadToken": "{mark as read token}"
}'