Q&A

Bot Designerで作成したJSONがそのまま送れない

前提・実現したいこと

LINE Bot Designerで作成したタイプがbubbleとcarouselのJSONをline-bot-sdk-phpを使ってそのまま送信したいです。 前までは作成したJSONをそのまま送れていたのに、最近のBot Designerのアップデートでエラーが出るようになりました。 LINE側のミスなのか、そもそもLINE Bot Designerで作ったJSONをそのままSDKで使うやり方が良くないのか知りたいです。

発生している問題・エラーメッセージ

タイプがbubbleかcarouselのJSONを送信しようとすると以下のエラーが返ってきます Must be one of the following values: [text, image, video, audio, location, sticker, template, imagemap, flex]

該当のソースコード

{ "type": "bubble", "direction": "ltr", "header": { "type": "box", "layout": "vertical", "contents": [ { "type": "text", "text": "Header", "align": "center", "contents": [] } ] }, "hero": { "type": "image", "url": "https://vos.line-scdn.net/bot-designer-template-images/bot-designer-icon.png", "size": "full", "aspectRatio": "1.51:1", "aspectMode": "fit" }, "body": { "type": "box", "layout": "vertical", "contents": [ { "type": "text", "text": "Body", "align": "center", "contents": [] } ] }, "footer": { "type": "box", "layout": "horizontal", "contents": [ { "type": "button", "action": { "type": "uri", "label": "Button", "uri": "https://linecorp.com" } } ] } }

試したこと

JSONをFlexで囲む { "type": "flex", "altText": "テンプレート", "contents": {上のbubbleのJSON} }

補足情報(FW/ツールのバージョンなど)

同じような現象と対策をしている方がいます。 https://qiita.com/inoue2002/items/2c3257738edb7b4e3379

  • 0
  • 1
  • 3618
  • twitter facebook

記事にある通り、LINE Bot Designerで生成されるFlexメッセージのjsonはcontentsの中身の部分になります。 送信に成功したjsonを添付するので差分を確認してみてください。

{
  "type": "flex",
  "altText": "this is a flex message",
  "contents": {
    "type": "bubble",
    "direction": "ltr",
    "header": {
      "type": "box",
      "layout": "vertical",
      "contents": [
        {
          "type": "text",
          "text": "Header",
          "align": "center",
          "contents": []
        }
      ]
    },
    "hero": {
      "type": "image",
      "url": "https://vos.line-scdn.net/bot-designer-template-images/bot-designer-icon.png",
      "size": "full",
      "aspectRatio": "1.51:1",
      "aspectMode": "fit"
    },
    "body": {
      "type": "box",
      "layout": "vertical",
      "contents": [
        {
          "type": "text",
          "text": "Body",
          "align": "center",
          "contents": []
        }
      ]
    },
    "footer": {
      "type": "box",
      "layout": "horizontal",
      "contents": [
        {
          "type": "button",
          "action": {
            "type": "uri",
            "label": "Button",
            "uri": "https://linecorp.com"
          }
        }
      ]
    }
  }
}
  • 0
本当によろしいですか? question.vm