ただいま作成中のWordPressサイトで、GoogleAppsScriptとLINEbotを連携させたWEBサイトを作成することになったので、その練習として簡単なLINEbotを作成してみました。
Google Apps Scriptとは
JavaScriptベースのスクリプト言語で、ドキュメント、スプレッドシート、スライド、フォームなどの G Suiteサービスをカスタマイズ、拡張できるサービスのこと。
インストール作業は不要で、ブラウザ内で動作するコードエディタが用意されており、スクリプトは Google のサーバーで実行されます。
参考:https://developers.google.com/gsuite/aspects/appsscript?hl=ja
今回のように、Google Apps Scriptを使うことで、環境設定不要で、サーバーレスなサービスが作れます。
オウム返し
// LINE developersのメッセージ送受信設定に記載のアクセストークン
const LINE_TOKEN = '自分のアクセストークン'; // Messaging API設定の一番下で発行できるLINE Botのアクセストークン
const LINE_URL = 'https://api.line.me/v2/bot/message/reply';
//ユーザーがメッセージを送信した時に下記を実行する
function doPost(e){
var json = JSON.parse(e.postData.contents);
//投稿されたtextデータ(e.postData.contents)をJSON形式の値に変換する
//返信するためのトークン取得
var reply_token=json.events[0].replyToken;
//replyToken…イベントへの応答に使用するトークン(Messaging APIリファレンス)
if(typeof reply_token === 'underfined'){
//未定義の変数 typeof…オペランド(対象となる変数等のこと)の型を示す文字列を返す
return;
}
//送られたメッセージ内容を取得
var message = json.events[0].message.text;
//メッセージを返信
UrlFetchApp.fetch(LINE_URL, {
'headers':{
'Content-Type':'application/json; charset=UTF-8',
'Authorization':'Bearer '+ LINE_TOKEN,
},
'method':'post',
'payload':JSON.stringify({
'replyToken':reply_token,
'messages':[{
'type':'text',
'text':message,
}],
}),
});
return ContentService.createTextOutput(JSON.stringify({'content':'post ok'})).setMimeType(ContentService.MimeType.JSON);
}
じゃんけん
// LINE developersのメッセージ送受信設定に記載のアクセストークン
const LINE_TOKEN = '自分のアクセストークン'; // Messaging API設定の一番下で発行できるLINE Botのアクセストークン
const LINE_URL = 'https://api.line.me/v2/bot/message/reply';
//ユーザーがメッセージを送信した時に下記を実行する
function doPost(e){
var json = JSON.parse(e.postData.contents);
//投稿されたtextデータ(e.postData.contents)をJSON形式の値に変換する
//返信するためのトークン取得
var reply_token=json.events[0].replyToken;
//replyToken…イベントへの応答に使用するトークン(Messaging APIリファレンス)
if(typeof reply_token === 'underfined'){
//未定義の変数 typeof…オペランド(対象となる変数等のこと)の型を示す文字列を返す
return;
}
//送られたメッセージ内容を取得
var message = json.events[0].message.text;
if(message ==='ぐー'||message ==='グー'){
var replyMsg = "ぱー✋";
}
if(message ==='ぱー'||message ==='パー'){
var replyMsg = "ちょき️✌️";
}
if(message ==='ちょき'||message ==='チョキ'){
var replyMsg = "ぐー✊";
}
//メッセージを返信
UrlFetchApp.fetch(LINE_URL, {
'headers':{
'Content-Type':'application/json; charset=UTF-8',
'Authorization':'Bearer '+ LINE_TOKEN,
},
'method':'post',
'payload':JSON.stringify({
'replyToken':reply_token,
'messages':[{
'type':'text',
'text':replyMsg,
}],
}),
});
return ContentService.createTextOutput(JSON.stringify({'content':'post ok'})).setMimeType(ContentService.MimeType.JSON);
}
以上です。