はじめに
今回の記事では、LINEのMessanging APIを用いて、送られた内容をスプレッドシートに反映するということをします。
GASというのはGoogle Apps Scriptの略です。
LINE Messaging APIとは
LINE公式アカウントで使用することができるAPIです。
メッセージの送受信をすることができ、LINEと様々なサービスを連携することができます。
送信は料金がかかるのですが、受信に対するアクションは無制限にできるので、気軽にLINE Botを作ることができます。
LINE BotというのはLINE上で動作するプログラムで、有名なものだとリマインくんなどがあります。
GAS(Google Apps Script)とは
Googleが提供しているプログラミング環境です。
GoogleスプレッドシートやGoogleカレンダーなどと簡単に連携することができ、いろんなことの自動化に向いています。
LINE Messaging APIと相性がいいので、よく組み合わせて使われます。
Google Drive上で作成することができます。
最初にやること
LINE公式アカウントを作り、messanging APIを使えるようにしてください。
messangingAPIのやり方についてはこちらをご覧ください。
GASを新規作成してください。
Googleスプレッドシートを新規作成してください。
プログラム
以下のプログラムをGASに貼り付けてください。
//固定値
var channel_token = "チャネルアクセストークン"
var url = "https://api.line.me/v2/bot/message/reply";
var spreadsheet = SpreadsheetApp.openById("スプレッドシートのID");
var sheet = spreadsheet.getSheetByName('シートの名前');
function doPost(e) {
var json = e.postData.contents
var events = JSON.parse(json).events;
var event=events[0]
//メッセージタイプがテキストか確認
if (event.type == "message") {
//メッセージテキストを取得
var user_massage = event.message.text;
//スプレッドシートの一番下の行にメッセージテキストを追加
sheet.appendRow([user_massage]);
if (event.message.type == "text") {
//自動返信メッセージ
var message = {
"replyToken": event.replyToken,
"messages": [{ "type": "text", "text": "入力を完了しました" }]
};
//返信メッセージのオプション
var options = {
"method": "post",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer " + channel_token
},
"payload": JSON.stringify(message)
};
//自動返信メッセージを送信する
UrlFetchApp.fetch(url, options);
}
}
}
固定値のところには適切な値を入れてください。
スプレッドシートのIDについてはこちらをご覧ください
チャネルアクセストークンについてはこちらをご覧ください
反映
GASの内容を保存して、新しいデプロイ
をしてください。
このとき、ウェブアプリとしてデプロイするのと、アクセスできるユーザーを全員に変えることを忘れないでください。
また、アクセスを承認する必要があることがありますが、こちらを参考にして進めてください。
デプロイしたURLをコピーして、LINE Official Account Managerの設定 > MessangingAPI
のWebhook URL
のところにペーストして、保存を押してください。
テスト
公式アカウントを友達追加して、何か言葉を送ってみてください。スプレッドシートに書き込まれると思います。
応用
スプレッドシートをデータベースのように使い、LINEで動作するのでサーバーサイドもフロントエンドもあまり気にすることなくプロジェクトを開発することができます。
ぜひちょっとしたサービスの構築に使ってみてください。
Googleスプレッドシート関連のクラスやメソッドはこちらから調べることができます。