【ラインボットがコピペで完成】カレンダー通知リマインダー作り方。【LINE Developer × GAS】

カレンダーを通知するリマインダーラインボットを作成する。【LINE Developer × GAS】プログラミング
スポンサーリンク

人間風のリマインダーLINEボットが作りたい。

 

 

前回の記事で、IFTTTを使うことによってGoogleカレンダーとTwitterを連携させて、自動ツイートをしました。

 

実はGoogleカレンダー×LINEも可能で、簡単に連携させられるんです。

 

ただ、その場合、「LINE Nofty」というアカウントから通知が行くことになります。

 

画像に alt 属性が指定されていません。ファイル名: image-82.jpg
画像に alt 属性が指定されていません。ファイル名: image-83.jpg

  

ミッツ
ミッツ

簡単なんだけど、ちょっと違うんだよな!

 

そう、私はできることならアニメのキャラクターや実在する人間風のアカウントがカレンダー通知してくれたらいいのにと思ったのです。

 

  

カレンダー通知リマインダー作り方 LINE BOTアカウント作成 

 

LINEの仕様が変わっています。 https://manager.line.biz/account にアクセスします。

  

  

私は普段使っているLINEアカウントでログインしました。ビジネスアカウントを作ってもいいですね。

 

  

「コンソールホーム」→「作成する」をクリックします。

  

プロバイダ名は適当に付けます。

 

 

「メッセージAPI」をクリックして作成します。

 

 

著作権的にだめかなぁ~?とは思いつつ、アイコンにいのすけにしてみました。許可されないときにはイノシシにでもしちゃいます。

 

このように入力して完成。

  

  

チェックを付け、「作成する」をクリック。これでLINEボットの下準備が完成です。

  

こちらを参考にさせていただきました。

  

カレンダー通知リマインダー作り方 アクセストークン等のメモ。

 

カレンダー通知リマインダー作り方 アクセストークン等のメモ。

  

カレンダー通知リマインダー作り方 アクセストークン等のメモ。

 

「自動返信メッセージ」は、「編集」をクリックして、無効にしておきます。

 

次に「メッセージングAPI」を押しましょう。下のほうまで行くと、「チャンネルアクセストークン」という箇所がありますので、そこにある「問題」というボタンを押しましょう。

 

 

カレンダー通知リマインダー作り方 アクセストークン等のメモ。

 

するとアクセストークンというパスワードのようなものが表示されます。このアクセストークンをコピーしておきましょう。

  

ゴミの日も記念日も何でも通知してくれるLINE BotをGASで作ってみよう - Qiita
LINE Botをリマインダ的に活用して生活に役立てるのが流行っていますね。特に、LINE BotのMessaging APIとGoogle Apps Script(通称GAS)との相性が良くて、とても簡単にBotが作れるみたいです。...

Linebotのアクセストークンが取得できないとき

 

ここで少しつまずきました。ラインの設定画面が変わっていて、アクセストークンが取得できません。

Linebotのアクセストークンが取得できないとき

 

画面下部にある、 LINE Developersをクリックします。 https://developers.line.biz/ja/

ログインが完了すると、右上に自分のラインアイコンがあるので、クリック。 

Linebotのアクセストークンが取得できないとき

プロバイダリストに、先ほど作ったbotがありました。クリックして、下に進んでいくと、【アクセストークン】の発行の箇所がありました。

  

Linebotのアクセストークンが取得できないとき

 

アクセストークンの『再発行』をクリック。

 

Linebotのアクセストークンが取得できないとき

 

 

LINE BOTとGoogleスプレッドシート・GASを連携する

  

Google スプレッドシート - オンラインでスプレッドシートを作成、編集できる無料サービス
パソコン、スマートフォン、タブレットのどこからでも新しいスプレッドシートを作成して、他のユーザーと同時に編集。インターネットに接続していなくても作業を継続でき、Excel ファイルも編集できる、Google の無料サービスです。

 

こちらからGoogleスプレッドシートに飛びましょう。

 

LINE BOTとGoogleスプレッドシート・GASを連携する

 

LINE BOTとGoogleスプレッドシート・GASを連携する

 

「+」を押しましょう。ファイルを新規作成します。

 

ファイルの名前はおまかせします。

 

LINE BOTとGoogleスプレッドシート・GASを連携する

シート名は「alart」にします。シートにはこんな感じで打ち込みましょう。

 

 

LINE BOTとGoogleスプレッドシート・GASを連携する

 

コピペする人はこちらから。

第n週曜日本文
52000今日はミッツの誕生日だよ!

 

さらに、アドレスバーのd/~~~~~~~~~~~/edit この間の部分がシートIDになります。これもメモしておきましょう。

 

 

LINE BOTとGoogleスプレッドシート・GASを連携する

 

「ツール」→「スクリプトエディタ」を選択。コードを入力していきます。以下コピペで、最初のアクセストークンとシートIDを入力しましょう。

 

// LINEアクセストークン。先ほどコピーしたアクセストークンを貼り付け。
var ACCESS_TOKEN = 'j0c4xVTMqgE38GU7zJ9deRiUUUG5SN+ivFGmjF5L/wnsG2hEtZJddnMb9OThw4pZGNgeCJpD8YF5WPv8vQX1Wb23cY6s1/48/zHZw0T0pAN050i5wMcoNK+EaBnHZPtGfW/SUAaT7JPaAQbudFG2+wdB04t89/1O/w1cDnyilFU=';

// Google スプレッドシートのシートIDを入力してください。
var SHEET_KEY = '1wkyneWH-0SR1FU1PQmL4uSgmVVFXq4yN45_lZAY3TR4';

function doPost(e) {
  var event = JSON.parse(e.postData.contents).events[0];
  var userMessage = event.message.text;

  var message = "";
  if ( userMessage === "ID" ) {
    message = tellID(event);
  }
  else if ( userMessage === "id" ) {
    message = tellID(event);
  }
 else if ( userMessage === "電車だ" ) {
    //好きな受け答えをすることができます。
    message = "猪突猛進!!(ドーン)";
  }
  else {
    // 疎通確認が終わったらコメントアウトすると良いです。
    message = "ゴメンネ ワカラナクッテ。「ID」ナラワカルヨ。";
  }

  replyMessage(event.replyToken, message);
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}

function replyMessage(token, message) {
  UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + ACCESS_TOKEN,
    },
    'method': 'post',
    'muteHttpExceptions': true,
    'payload': JSON.stringify({
      'replyToken': token,
      'messages': [{
        'type': 'text',
        'text': message,
      }],
    }),
  });
}

function pushMessage(to, message) {
  UrlFetchApp.fetch('https://api.line.me/v2/bot/message/push', {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + ACCESS_TOKEN,
    },
    'method': 'post',
    'muteHttpExceptions': true,
    'payload': JSON.stringify({
      'to': to,
      'messages': [{
        'type': 'text',
        'text': message,
      }],
    }),
  });
}

function tellID(event) {
  // ID
  var userID = event.source.userId;
  var talkID = "";
  if (event.source.type === "group") {
    talkID = event.source.groupId;
  } else if (event.source.type === "room") {
    talkID = event.source.roomId;
  }

  var message = "おまえのIDは、 " + userID;
  if (talkID != "") {
    message += "\nおまえらのグループのIDは " + talkID;
  }

  return message;
}

function notice() {
  var sheet = SpreadsheetApp.openById(SHEET_KEY).getSheetByName('alart');
  var data  = sheet.getDataRange().getValues();

  var dayStr = ["日", "月", "火", "水", "木", "金", "土"];
  var now = new Date();
  for (var i=1; i<data.length; i++) {
    var [year, month, dayOfMonth, weekNum, dayOfWeek, hour, minute, message, to] = data[i];

    // 本文と発言する場所が空の場合はスキップ
    if (message === "" || to === "") { continue; }

    if ( (year       ==  now.getFullYear()               || year       === "")
      && (month      ==  now.getMonth() + 1              || month      === "")
      && (dayOfMonth ==  now.getDate()                   || dayOfMonth === "")
      && (weekNum    ==  parseInt(now.getDate() / 7) + 1 || weekNum    === "")
      && (dayOfWeek  === dayStr[now.getDay()]            || dayOfWeek  === "")
      && (hour       ==  now.getHours()                  || hour       === "")
      && (minute     ==  now.getMinutes()                || minute     === "")
      ) {
        pushMessage(to, message);
      }
  }
}

  

 

LINE BOTとGoogleスプレッドシート・GASを連携する

 

すべて終了したら、「公開」→「ウェブアプリケーションとして導入」を選択。

 

Projectvuversionは「NEW」一番下の場所は、「anyone,even anonymous」を選択。

LINE BOTとGoogleスプレッドシート・GASを連携する

LINE BOTとGoogleスプレッドシート・GASを連携する

  

こんな感じで出た時は、「詳細」をクリック。

 

 

「安全ではないページに移動」 をクリック。

 

  

で、許可を押します。

 

appURLをゲットする

 

appURLをゲットする

 

こんな感じになれば成功。 appURLは後で必要になるのでメモしておきましょう。

 

appURLをゲットする

 

さらに、「トリガーを追加」

appURLをゲットする

 

kok

 

このように変更して、保存を押しましょう。これでコードの設定は終了です。

 

LINE Developersに戻る

さきほどの「メッセージAPI」の場所から、「Webhook設定」のところへ。

LINE Developersに戻る

 

「編集」をクリックします。先ほどGASの方でゲットしappURLをここに打ち込みます。更新。

 

LINE Developersに戻る

 

  

LINE Developersに戻る

 

さらに、アカウント機能、自動返信メッセージから、「編集」をクリック。このように設定しましょう。

 

 

 

同じページにQRコードがあるので、スマホで読み込み、友達登録をしましょう。

【ラインボットがコピペで完成】カレンダー通知リマインダー作り方。【LINE Developer × GAS】

 

すべてうまくいくと、こんな感じで会話ができるようになります。

IDを聞くと、答えてくれます。

 

このIDをスプレッドシートのI列(発言する場所)に入力します。

 

また、スプレッドシート内の空白部分は、毎時その通知を行います。

 

例えば、下の入力だと「年」部分が空欄なので、毎年5月20日22:33に通知をするようになります。

 

【ラインボットがコピペで完成】カレンダー通知リマインダー作り方。【LINE Developer × GAS】

うまくいきました。

 

ミッツ
ミッツ

これを使って、母親ボットを作るもよし、好きなキャラに通知されてもよし、好きに使えますね。

誕生日・命日・記念日など決まっていることのリマインダーとして役に立ちます。

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