【Google Apps Script + LINE Messaging API】アンケートフォームの作成&絵文字&GASライブラリ()の追加

GAS

<準備編>LINE bot SDK(line-bot-sdk-gas)

LINE bot SDK(GAS以外のライブラリ)

LINE Messaging API SDK
LINE Developersサイトは開発者向けのポータルサイトです。LINEプラットフォームのさまざまな開発者向けプロダクトを利用するための、管理ツールやドキュメントを利用できます。LINEログインやMessaging APIを活用して、...

line-bot-sdk-gas(GAS用のライブラリ)

参照:LINE Messaging API を Google Apps Script で利用するためのライブラリ作りました

依存ライブラリの設定

  1. GAS のエディタ画面の [ライブラリ] の [+] をクリックしてダイアログを開きます。
  2. [スクリプト ID] という入力欄に 
    1EvYoqrPLkKgsV8FDgSjnHjW1jLp3asOSfDGEtLFO86pPSIm9PbuCQU7b

という値を入力し、 [検索] ボタンをクリックします。

3.[追加] ボタンを押します。

絵文字一覧(LINE Developers)

LINE絵文字
LINE Developersサイトは開発者向けのポータルサイトです。LINEプラットフォームのさまざまな開発者向けプロダクトを利用するための、管理ツールやドキュメントを利用できます。LINEログインやMessaging APIを活用して、...

LINEメッセージの飛ばし方(GASで記述)

たらこさんのLINEメッセージの飛ばし方
https://note.com/taraco123/n/n522774098e00

function myFunction() {
    var url = "https://notify-api.line.me/api/notify";
    var token = ["トークンを記載"];

    var data = {
        "message" : "こんにちは!",
    }

    var options = {
        "method":"post",
        "contentType":"application/x-www-form-urlencoded",
        "headers":{
            "Authorization":"Bearer " + token,   //必ず「Bearer」の後に半角スペースが必要
        },
        "payload":data,
    }
    UrlFetchApp.fetch(url,options);
}

アンケートフォームの作成→回答をGoogle Spreasheetに記入

const SPREAD_SHEET_ID = "スプレッドシートのID";
const SHEET_NAME = "シート1"
const ACCESS_TOKEN = "LINE Developersのチャンネルアクセストークン";

const sheet = SpreadsheetApp.openById(SPREAD_SHEET_ID).getSheetByName(SHEET_NAME);
const bot = new LineBotSdk.client(ACCESS_TOKEN);
function doPost(e) { bot.call(e, callback) };
function callback(e) {
    if (e.type == "follow") {
        question(e);
    } else if (e.type == "postback") {
        const postbackData = e.postback.data;
        if (["犬", "猫", "兎"].includes(postbackData)) {
            const cells = sheet.createTextFinder(e.source.userId).findAll();
            if (cells.length == 0) {
                sheet.appendRow([e.source.userId, postbackData]);
            } else {
                cells[0].offset(0, 1).setValue(postbackData);
            }
            bot.replyMessage(e, [bot.textMessage(`ご回答ありがとうございます!`)]);
        }   
    }
};

function question(e) {
    bot.replyMessage(e, [bot.flexMessage({
        "type": "bubble",
        "body": {
            "type": "box",
            "layout": "vertical",
            "contents": [
                {
                    "type": "text",
                    "wrap": true,
                    "color": "#666666",
                    "size": "sm",
                    "text": "好きな動物を教えてください"
                }
            ]
        },
        "footer": {
            "type": "box",
            "layout": "vertical",
            "spacing": "sm",
            "contents": [
            {
                "type": "button",
                "style": "link",
                "height": "sm",
                "action": {
                    "type": "postback",
                    "label": "いぬ",
                    "data": "犬"
                }
             },
            {
                "type": "button",
                "style": "link",
                "height": "sm",
                "action": {
                    "type": "postback",
                    "label": "ねこ",
                    "data": "猫"
                    }
             },
            {
                "type": "button",
                "style": "link",
                "height": "sm",
                "action": {
                    "type": "postback",
                    "label": "うさぎ",
                    "data": "兎"
                    }
             },
            {
                "type": "box",
                "layout": "vertical",
                "contents": [],
                "margin": "sm"
            }
        ],
        "flex": 0
        }
    })]);
}

FLEX MESSAGE SIMULATOR 参照
https://tibirobo.jpn.org/?p=3341

<番外編>LINEにメッセージ送信しよう – LINE Notifyのトークン発行

LINE Notify APIとLINE Messaging APIとの違い

「LINE Notify API」と「LINE Messaging API」は、どちらもLINEのプラットフォーム上で提供されているAPIサービスですが、目的や利用シーン、提供される機能に違いがあります。

大きな違いとしては、LINE Notify APIはシンプルな通知を送るためのものであり、LINE Messaging APIはLINEボットの開発やユーザーとの双方向のコミュニケーションを実現するためのものです。

双方向性
  • LINE Notify API
    一方通行の通知を主としている
    ※テキスト、画像、スタンプなどのシンプルなメッセージを送信

LINE Messaging API
→双方向性。ユーザーからのメッセージやイベント(例:友だち追加、ブロックなど)を受け取ることができ、それに応じてボットからの返信やアクションを実行可能。
※テキスト、画像、動画、スタンプ、位置情報、カルーセルメッセージなど、多様なメッセージタイプをサポート

参照:https://programming-zero.net/line-notify-api-access-token/

たらこさんのLINE Notifyのトークン発行方法
https://note.com/taraco123/n/n0e1ca2cb858e

888

タイトルとURLをコピーしました