その他

GoogleAppsScriptを使ったLINEbot【オウム返しとじゃんけん】

ただいま作成中のWordPressサイトで、GoogleAppsScriptLINEbotを連携させた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);
}

 
以上です。

  • この記事を書いた人

コウダイ

文系・ノースキル・未経験・アラサー・地方住み・残業100時間超えの社畜ホテルマンから都内IT系上場企業のフルリモートWebエンジニアに転職した人。

都内IT系上場企業に勤務するWebエンジニア5年目|プログラミングスクールのテックキャンプ公式アンバサダー|新卒で手取り18万の地方ホテルマン6年→挫折→プログラミングを900時間勉強→転職活動100社以上応募→アラサー未経験から7ヶ月でフルリモートのWebエンジニアに転職し年収150万円UP|34歳2児のパパ|ブログ歴4年→月間6,000PV|エンジニア転職ノウハウ、プログラミング、Web制作、副業での稼ぎ方など、「時間や場所に縛られずに稼ぐ」方法を発信しています。

-その他