LANG SELRCT

コードを書く場所

2019年1月5日土曜日

LINE BOTのFlex Messageのtextで文章を省略せずに表示したい


公式のリファレンス(Wrapping text)に書かれていました

デフォルトでは長い文章は省略されます
"wrap": trueを使うと
省略されずに改行もできます

以下に書いたコード.gsのこの部分
{
  "type": "text",
  "text": '改行を入れたり\n長い文章を表示するためには"wrap": true"を設定する',
  "wrap": true
}


"wrap": trueにした場合



"wrap": trueを書かないか"wrap": falseにした場合




コード.gs
function flexMessage() {
  var postData = {
    "to": getUserId(),
    "messages": [{
      "type": "flex",
      "altText": "this is a flex message",
      "contents":
      {
        "type": "bubble",
        "body": {
          "type": "box",
          "layout": "vertical",
          "spacing": "md",
          "contents": [     
            {
              "type": "text",
              "text": '改行を入れたり\n長い文章を表示するためには"wrap": true"を設定する',
              "wrap": true
            }
          ]
        }
      }
    }]
  };
  var url = "https://api.line.me/v2/bot/message/push";
  postFetch(postData, url);
}

function postFetch(postData, url) {
  var options = {
    "method": "post",
    "headers": {
      "Content-Type": "application/json",
      "Authorization": "Bearer " + getToken()
    },
    "payload": JSON.stringify(postData)
  };
  var result = UrlFetchApp.fetch(url, options);
  return result;
}

function getToken() {
  return PropertiesService.getScriptProperties().getProperty('token');
}

function getUserId() {
  return PropertiesService.getScriptProperties().getProperty('user_id');
}

tokenとuser_idはスクリプトのプロパティに保存しています


関連記事

スクリプトのプロパティやFlex Messageの使い方がわからない場合