4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LINEをライフログ用インタフェースとして使ってみる

Last updated at Posted at 2018-03-02

やること

LINEにテキストを入力したら、Google Spreadsheetに日付+テキストの行として追記するようにしてみます。

背景

いままで、ライフログというと大げさですが、家計簿的に使ったお金や、筋トレ回数、ランニングのペースや距離などを記録しようとしてきました。

自動記録されるようなアプリでも、自分で何かを入力する必要があったりすると、いちいちアプリを選んで入力するのが面倒で、長続きしなかったり、入力が不正確になったりしてしまってました。

ちょっとしたデータならスプレッドシートに記録すればよいですが、スマホからスプレッドシートを開いて入力するのも面倒で、こちらも長続きしません。

入力が簡単ならもう少し長続きするのではと思って、インタフェースとしてお手軽なLINEを使ってGoogle Spreadsheetに入力するようにしてみました。

利用するもの

  • Google Spreadsheet
  • Google App Script
  • LINE Messaging API

設定のステップ

ちょっと端折り気味ですが、設定方法を説明します。

1. Google Spreadsheetを用意する

記録したいスプレッドシートを選ぶ or 作り、そのスプレッドシートIDをメモします。
そのスプレッドシートの中で、LINEからの入力を書き込むシートを作り、その名前をメモします。

2. Google App Script上でコードを書いて公開する

Google App Scriptでプロジェクトを作り、以下のコードを貼り付けて保存します。

var SPREADSHEET_ID = 'ここにSpreadsheet IDを指定します';
var SHEET_NAME = 'ここにスプレッドシートのシート名を指定します';

function record(event) {
  var today =  Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/M/d');
  var messageText = '(テキスト、位置情報以外のメッセージ)';
  
  if(event.message.type == 'text') {
    messageText = event.message.text;
  } else if(event.message.type == 'location') {
    messageText = event.message.address;
  }

  // シートへの追記
  var ss = SpreadsheetApp.openById(SPREADSHEET_ID);
  var sheet = ss.getSheetByName(SHEET_NAME);
  sheet.appendRow([today, messageText]);
}

function doPost(e) {
  // LINEからのメッセージ取得
  var evtArray = JSON.parse(e.postData.contents).events;

  evtArray.forEach(function(event) {
    // メッセージタイプの場合にスプレッドシートに記録
    if(event.type == "message") {
      record(event);
    }
  });

  return JSON.stringify({});
}

コード内の SPREADSHEET_ID、SHEET_NAME に、「1. Google Spreadsheetを用意する」でメモしたものを指定します。

そのあと、「公開」⇒「ウェブアプリケーションとして導入」を行います。
「アプリケーションにアクセスできるユーザー」は「全員(匿名ユーザーを含む)」に設定しておきます。
公開されるとその URLが表示されます。

3. LINE Messaging APIの設定を行う

いろいろなところに設定方法が出ているので、詳細は割愛します。
「プロバイダー」を作って、その下に今回のアプリ用の「Channel」をつくります。

  • 今回のアプリはフリーの範囲で動きます
  • アクセストークンの「再発行」をクリックします
  • 「Webhook送信」は「利用する」にします
  • Webhook URLに、Google App Scriptで公開した URLを指定し、「接続確認」を行います
  • 「自動応答メッセージ」は「利用しない」にします

以上の設定を行ったら、このChannel基本設定ページの下にあるQRコードを、スマホ等のLINEアプリから読み込めば利用可能になります。

おわりに

LINEに何か入力して応答するというプログラムではないので、一般的なBotアプリとは趣が異なりますが、こんな使い方もありうるということで、紹介してみました。

4
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
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?