LoginSignup
6
6

More than 3 years have passed since last update.

gasとlinebotで湯婆婆を実装してみた

Last updated at Posted at 2020-11-05

概要

今日のQiitaの記事ランキングをみていたら湯婆婆が座巻していたので自分も実装してみました。
Nemesisさんの下記記事参照です
https://qiita.com/Nemesis/items/c7192a7c510788d2cba2

湯婆婆bot

botはこちらのurlから追加できます
https://lin.ee/qU7EpOf

内容

内容としてはまず最初の挨拶メッセージで湯婆婆に
『契約書だよ。そこに名前を書きな。』と言われます

素直に名前を返すと一文字になった自分の新しい名前が返ってくるというものです

コード

湯婆婆.js
//LINE Messaging APIのチャネルアクセストークン
const CHANNEL_ACCESS_TOKEN = "チャンネルトークン";
const LINE_ENDPOINT = 'https://api.line.me/v2/bot/message/reply';
//LINE Messaging APIからPOST送信を受けたときに起動する
// e はJSON文字列
function doPost(e){
  if (typeof e === "undefined"){
    //eがundefinedの場合動作を終了する
    return;
  } 

  //JSON文字列をパース(解析)し、変数jsonに格納する
  var json = JSON.parse(e.postData.contents);
  var event = JSON.parse(e.postData.contents).events[0];
  //受信したメッセージ情報を変数に格納する
  var replyToken = json.events[0].replyToken; //reply token
  var messageId = json.events[0].message.id; //メッセージID
  var messageType = json.events[0].message.type; //メッセージタイプ
  var userId = event.source.userId;

  //返信するためのトークン取得
  var replyToken = json.events[0].replyToken;
  var nameOrigin = json.events[0].message.text;
  var length = nameOrigin.length;
  var rundomNum = Math.floor(Math.random()*length);
  var name = json.events[0].message.text.slice(rundomNum -1,rundomNum);
  var message = "フン。" +  nameOrigin +"というのかい。贅沢な名だねぇ。"
  var message2 = "今からお前の名前は " + name + "だ。いいかい、" + name + " だよ。分かったら返事をするんだ、 " + name + "!!";
  UrlFetchApp.fetch(LINE_ENDPOINT, {
      'headers': {
        'Content-Type': 'application/json; charset=UTF-8',
        'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
      },
      'method': 'post',
      'payload': JSON.stringify({
        'replyToken': replyToken,
        'messages': [
          {
          'type': 'text',
          'text': message,
          },
          {
          'type': 'text',
          'text': message2,
          },
                    ],
      }),
    });
}

コードの詳細

内容としてはユーザーが入力した内容の文字数の長さを取得し、
その長さの範囲内で乱数を一個生成します
その(乱数-1,乱数)を範囲として文字列をスライスします
そうしたら新しい名前の出来上がりです!

最後に

特に自分が始めたわけではないので呼びかけをしてもいいものなのかはわからないですが、是非他の方法で実装した他の記事を読んでみたいので開発のご検討と記事の作成をお願いします!

最後に2

現在私は個人事業主として下記のサイトの事業を取り進めております。(サイトはまだ作成して間もないのでまだガタガタです、、)
ホテルの自動チェックインのラインでの実装や、rpaの制作をメインに進めています。
作業の自動化等にご興味があれば是非ご連絡ください。何卒よろしくお願いいたします。
https://senren.work/

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6