LINE Messaging API の Quick Reply ラベル 20文字制限により、NYA'sの結果報告操作が全件エラー
NYA(ニャース)の担当者 2名が、7/26 vs GXY(篠崎ゴールデンギャラクシー)戦の結果報告を実行できない状態が発生。
成績表(星取表)上のステータスが FIX のまま更新されず、結果が未記録となった。
2026-07-26 14:03 〜 2026-07-27 デプロイ完了まで(約5時間20分 + 翌日対応分)
GXY(篠崎ゴールデンギャラクシー)を対戦相手とする全チームの結果報告が同様に失敗する状態だった。予定報告・その他チーム同士の結果報告は正常に動作。
handleResultModeV2 で生成する Quick Reply のラベルが LINE API の 20文字制限を超過。GXY のチーム名「篠崎ゴールデンギャラクシー」(13文字)と日付・"vs" を結合すると 21文字以上になり、API が 400 エラーを返した。
NYA 担当者 A(U774c...)が 14:02 に操作開始。予定報告は正常完了したが、結果報告は全て同一エラーで失敗。19:21 に別の担当者 B(Ua615...)も同じエラーに遭遇。
handleResultModeV2 が生成するラベル 日付 + " vs " + チーム名 + (N戦目) が、GXY のフル名称で 21文字以上となり制限を超過した。
| 対戦相手 | ラベル例 | 文字数 | 結果 |
|---|---|---|---|
| ニャース (NYA) | 7/26 vs ニャース | 12 | OK |
| 江戸川ポーザーズ (EPS) | 7/26 vs 江戸川ポーザーズ | 16 | OK |
| 篠崎ゴールデンギャラクシー (GXY) | 7/26 vs 篠崎ゴールデンギャラクシー | 21 | 超過 |
| 江戸川ポーザーズ(2戦目) | 7/26 vs 江戸川ポーザーズ (2戦目) | 22 | 超過 |
GXY は 1戦目でも超過する唯一のチーム。EPS は 2戦目以降で超過する。その他のチームは全パターンで制限内。
main_v2.gs の handleResultModeV2 関数(117〜127行目)で、Quick Reply ラベルを無制限に結合していた。
LINE API は Quick Reply の label が 20文字を超えるとリクエスト全体を 400 で拒否するため、試合選択画面自体が表示されなかった。
| ファイル | 関数 | 変更内容 |
|---|---|---|
main_v2.gs |
handleResultModeV2 |
ラベルが 20文字超の場合、チーム名をチームコード(3文字)に短縮。displayText にフル名称を設定 |
function.gs |
sendQuickReply |
displayText プロパティのサポートを追加 |
ラベルが20文字を超える場合、チーム名をコード(GXY 等)に置き換えてから、さらに超過する場合は 20文字で切り詰め。ユーザーのチャット画面には displayText 経由でフル名称を表示。
sendQuickReply が displayText を受け取れるよう、action オブジェクトの displayText を opt.displayText || opt.label に変更。
ボタン表示とチャット表示が同一の label を使用。
GXY 対戦時: 21文字超過 → 400エラー
ボタン: 7/26 vs GXY(12文字)
チャット: 7/26 vs 篠崎ゴールデンギャラクシー
20文字以内を保証
| 項目 | 内容 |
|---|---|
| デプロイ日時 | 2026-07-27 |
| 対象ファイル | main_v2.gs, function.gs |
| デプロイ方法 | GAS エディタへ手動コピー → Webhook URL 更新 |
| 確認結果 | 正常動作確認済 |