# ニュース: 【更新】Messaging APIアップデート(2020年5月)

【更新】Messaging APIアップデート(2020年5月)

2020年12月12日追記

リッチメニューオブジェクト(画像)」の変更後のファイルサイズに誤記があったため、修正いたしました。お詫びして訂正します。

【誤】
800px以上 × 2500px以下

【正】
幅800px以上 〜 2500px以下、高さ250px以上

Messaging APIにおいて、以下の改善を行いました。

# メッセージの文字数制限やメディアファイルの使用条件が変更されました

テキストメッセージの文字数制限や、使用できるメディアファイルの条件が変わりました。変更前と変更後の差異については、以下の表を参照してください。

# WebhookイベントのテキストメッセージオブジェクトからLINE絵文字情報を取得する

ユーザーが送信したテキストにLINE絵文字が含まれる場合にWebhookで届くテキストメッセージオブジェクトemojisプロパティに、使用されているLINE絵文字の情報がLINE絵文字オブジェクトとして格納されます。

LINE絵文字の種類は、productIdおよびemojiIdで取得します。

{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "mode": "active",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U4af4980629..."
  },
  "message": {
    "id": "325708",
    "type": "text",
    "text": "Hello, world! (love)",
    "emojis": [
      {
        "index": 14,
        "length": 6,
        "productId": "5ac1bfd5040ab15980c9b435",
        "emojiId": "001"
      }
    ]
  }
}

詳しくは、『Messaging APIリファレンス』の「テキスト」を参照してください。

# 失敗したAPIリクエストを安全に再試行する

Messaging APIを使ってメッセージを送信した際に、エラーが発生したり、リクエストがタイムアウトした場合、ユーザーに正しくメッセージが配信されたかわからないことがあります。同じリクエストを実行すると、最初のAPIリクエストが正しく受理されていた場合、ユーザーは同じメッセージを二度も受信することになります。

安全に同じリクエストの再試行ができるように、HTTPリクエストヘッダーにリトライキー(X-Line-Retry-Key)を追加できるようになりました。

リトライキーの値には、任意の方法で生成した16進表記のUUID(例:123e4567-e89b-12d3-a456-426614174000)を指定します。同じUUIDのリクエストキーを含んだAPIリクエストを何度実行しても、必ず一度だけ処理されるため、同じ処理の重複を防ぐことができます。リトライキーを使うことで、安全なAPIリクエストの再試行を実現する設計が可能になりました。

curl -v -X POST https://api.line.me/v2/bot/message/push \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {CHANNEL_ACCESS_TOKEN}' \
-H 'X-Line-Retry-Key: {UUID}' \
-d '{
    "messages": [
        {
            "type": "text",
            "text": "Hello, user"
        }
    ]
}'

詳しくは、「失敗したAPIリクエストを再試行する」を参照してください。