2024年9月30日のニュースでお知らせしたとおり、LINEアプリのグループトークにおいて、ユーザーがボットをメンションできる機能が提供されました。これに伴い、Messaging APIにおいて、ユーザーがメンションを含むメッセージを送信した際の、ボットサーバーへ送信されるWebhookイベントオブジェクトにプロパティが追加されましたのでお知らせします。
これにより、ボットはグループトーク上でユーザーからメンションされたことが分かるようになりました。既にボットへのメンションを判別する処理を独自に実装していた場合や、今後ボットサーバー上でユーザーからのメンションに応じた処理をおこなう場合は、今回追加された仕様をもとに判別することを検討してください。
iOS版LINEまたはAndroid版LINEのバージョン14.17.0以降
今回のリリースにより、以下の2点の仕様が追加されました。
ユーザーがメンションを含むメッセージを送信した場合、ボットサーバーに送信されるWebhookイベント内のテキストメッセージオブジェクトには、従来よりmentionプロパティが含まれていました。今回の仕様追加に伴い、ユーザーまたはボットに対するメンションがあった場合、このmentionプロパティにおけるmentionees[]にisSelfプロパティが追加されます。
mention.mentionees.isSelf
Webhookイベントを受信したボット(destination)に対するメンションかどうか。mention.mentionees[].typeプロパティの値がuserのときのみ含まれます。
true:Webhookイベントを受信したボットに対するメンションである。false:他のユーザーに対するメンションである。
ユーザーが送信したメッセージに自分のボットへのメンションがあった場合、ボットサーバーに送信されるWebhookイベント内のテキストメッセージオブジェクトにおいて、次の値が設定されます。
mention.mentionees[].typeにuserが設定される。mention.mentionees[].userIdにボットのユーザーIDが設定される。mention.mentionees[].isSelfにtrueが設定される。
なお、ボットのユーザーIDは、Webhookのリクエストボディにあるdestinationプロパティや、「ボットの情報を取得する」エンドポイントで取得できるuserIdプロパティで確認できます。
ユーザーがメンションを含むメッセージを送信した場合の挙動について、仕様追加の前後における例を示します。
以前より、ユーザーはトークルーム内の別のユーザーへのメンションが可能でした。ユーザーがメンションを含むメッセージを送信した場合、次のようなメッセージイベントを含むWebhookイベントオブジェクトがボットサーバーに送信されていました。
json"message": {
"id": "444573844083572737",
"type": "text",
"quoteToken": "q3Plxr4AgKd...",
"text": "@example Good Morning!!",
"mention": {
"mentionees": [
{
"index": 0,
"length": 8,
"userId": "U49585cd0d5...",
"type": "user"
}
]
}
}
仕様追加後は、ユーザーが送信したメッセージにボットへのメンションがあった場合、次のようなメッセージイベントを含むWebhookイベントオブジェクトがボットサーバーに送信されます。このように、isSelfプロパティにtrueが設定されます。
json"message": {
"id": "444573844083572737",
"type": "text",
"quoteToken": "q3Plxr4AgKd...",
"text": "@example_bot Good Morning!!",
"mention": {
"mentionees": [
{
"index": 0,
"length": 12,
"userId": "{ボットのユーザーID}",
"type": "user",
"isSelf": true
}
]
}
}
ユーザーが送信したメッセージに別のユーザーへのメンションがあった場合は、次のようにisSelfプロパティにfalseが設定されます。
json"message": {
"id": "444573844083572737",
"type": "text",
"quoteToken": "q3Plxr4AgKd...",
"text": "@example Good Morning!!",
"mention": {
"mentionees": [
{
"index": 0,
"length": 8,
"userId": "U49585cd0d5...",
"type": "user",
"isSelf": false
}
]
}
}
なお、今回の仕様追加のように、Webhookイベントオブジェクトの構造が変わることがあります。ボットサーバーは、従来と異なる構造のオブジェクトを受信しても、不具合が発生しないように実装してください。詳しくは、『Messaging APIドキュメント』の「非破壊的な変更を想定した実装の推奨」を参照してください。
上記に伴うLINE Messaging API SDKの更新状況については、それぞれのSDKのリリースノートを参照してください。