@osagari

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

GASを使ったリッチメニューからアンケートとカードタイプメッセージを表示したい

解決したいこと

①GASで作成したリッチメニューの、右下を押したら、3問ほどのアンケートを実施し、スプレッドシートにすでに登録されているユーザーIDに紐づけて回答を転記したい
※友達登録初期時にユーザーIDと名前を取得し、スプレッドシートに反映するコードはなんとか動きました
②左上ボタンを押したら、カードタイプメッセージを表示したい

発生している問題・エラー

・画像はGASでは表示できず、画像のURL出なけければ不可能とのブログを見ました
・私の技術では、ここまでが手詰まりであり、ヒントとなる方々の内容の理解に追いつかないでしまいました
②左上ボタンを押したら、カードタイプメッセージの表示については、コードを書いてみましたが、現在リッチメニューの更新がうまくできず、動作確認ができておりません。こちらの書き方で問題ないか、チェックいただけますと幸いです。

### 該当するソースコード
```言語名
GAS

例)


function createRichMenuC1() {  //richmenu-117a203f39e1217ecb151ce0ca05f17e
  let richmenu = bot.richmenu({
    "name": "移住希望者C",
    "barText": "←キーボード / メニュー",
    "size": { "width": 2500, "height": 1686 },
    "selected": true, 
    "areas": [
      bot.area({ "x": 0,    "y": 0, "width": 1250, "height": 220,
      "action": bot.aSwitch({"aliasId": "switch-to-a", "data": "change to A"}) }),
      bot.area({ "x": 1250, "y": 0, "width": 1250, "height": 220,
      "action": bot.aSwitch({"aliasId": "switch-to-c", "data": "change to C"}) }),

      bot.area({ "x": 0,    "y": 220, "width": 1666, "height": 1466,  //左上
      "action": bot.aPostback({"data": "showCarousel"}) }),  // カードメッセージ表示のトリガー、0821追加
      bot.area({ "x": 1667, "y": 220, "width": 833, "height": 733,  //右上
      "action": bot.aMessage({"text": "真ん中下"}) }),
      bot.area({ "x": 1667,    "y": 954, "width": 833, "height": 733,  //右下・アンケート
      "action": bot.aMessage({"text": "右下"}) }), 
    ]
  })
  let res = bot.createRichMenu(richmenu);
  console.log(res.toString());
}

//カードメッセージ表示のトリガー、0821追加↓ここから

function doPost(e) {
  let json = JSON.parse(e.postData.contents);
  let events = json.events;

  for (let i = 0; i < events.length; i++) {
    let event = events[i];
    let userId = event.source.userId;

    // 左上エリア押下時にカードメッセージを表示する
    if (event.type === "postback" && event.postback.data === "showCarousel") {
      sendCarouselMessage(userId);
    }
  }

  function sendCarouselMessage(userId) {
  bot.pushMessage(userId, {
    "type": "template",
    "altText": "マッチングまでの流れ",
    "template": {
      "type": "carousel",
      "columns": [
        {
          "thumbnailImageUrl": "https://example.com/image1.jpg",
          "title": "カード 1",
          "text": "テキスト1",
          "actions": [
            { "type": "postback", "label": "選択 1", "data": "action=select&itemid=1" }
          ]
        },
        {
          "thumbnailImageUrl": "https://example.com/image2.jpg",
          "title": "カード 2",
          "text": "テキスト2",
          "actions": [
            { "type": "postback", "label": "選択 2", "data": "action=select&itemid=2" }
          ]
        },
        {
          "thumbnailImageUrl": "https://example.com/image3.jpg",
          "title": "カード 3",
          "text": "テキスト3",
          "actions": [
            { "type": "postback", "label": "選択 3", "data": "action=select&itemid=3" }
          ]
        },
        {
          "thumbnailImageUrl": "https://example.com/image4.jpg",
          "title": "カード 4",
          "text": "テキスト4",
          "actions": [
            { "type": "postback", "label": "選択 4", "data": "action=select&itemid=4" }
          ]
        }
      ]
    }
  });
}
//カードメッセージ表示のトリガー、0821追加↑ここまで

自分で試したこと

先週から缶詰で学び、やっとタブ切り替えのリッチメニューと、ボタンを押下されたらメッセージの表示、またはURL先へ飛ぶ方法がわかりました。

0 likes

No Answers yet.

Your answer might help someone💌