6
3

More than 3 years have passed since last update.

「DeFiのイールドファーミングでいちいち収穫した利息をExcelで管理するのが面倒」という悩みをLINEBotとGASを使って解決する。

Last updated at Posted at 2021-05-30

皆さんこんにちは。
仮想通貨投資を行っている方の中にはDeFiのイールドファーミングを利用している方も多くいるのではないでしょうか。
Defiサービスの中でも容易に高利回りの利息収入が手にすることもでき、人気がありますが税金計算が厄介ですよね。
確定申告のためにも、受け取った利息の数量とレートを記録していかなければいけません。
利息取得の度、いちいちExcelを開いて記録してなんて本当に面倒くさい!
という事で、LINEとGASを使って手軽にGoogleスプレッドシートにデータを蓄積していくアプリを作ってみました。

今回作成したもの

LINE、GAS、スプレッドシートを連携させることで、LINEに入力した情報をスプレッドシートへ転記します。
image.png
①LINEへ「$"通貨名" "利息" "通貨のレート"」の形で入力します。
(各要素の間は半角スペース)
②Webhookを利用し、GASへ連携されます。
③Googleスプレッドシートの指定されたセルに入力されます。

使用したツール

・Googleスプレッドシート
・Google Apps Script
・LINE Messaging API

Googleスプレッドシートの準備

下記のように、記録用のスプレッドシートを作成する。
image.png

Google Apps Script

GASを新規作成する。
image.png

GASのコード全文は下記の通り。


function doPost(e) {
  // 投稿されたメッセージを取得
  var userMessage = JSON.parse(e.postData.contents).events[0].message.text;

  if(userMessage.match(/^\$/)) {
    // $から始まるメッセージの場合、$を除いた文字列を再代入
    userMessage = userMessage.substr(1);
  } else {
    // $から始まらない場合は何もしない(処理終了)
    return;
  }

  // スプレッドシートへ保存=======================================
  var response = e.postData.getDataAsString();
  var spreadsheetId = "自分のスプレッドシートのID";
  var sheetName = "log";
  var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  var sheet = spreadsheet.getSheetByName(sheetName);

  // 空白・タブ・改行で区切り配列に変換  
  var arr = userMessage.split(/\s/);

  // 配列の先頭に日時を代入
  arr.unshift(new Date());

  // セルの最下部に配列を転記
  sheet.appendRow(arr);
  // =======================================

return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
 }

なお、「自分のスプレッドシートのID」は、シートのURL欄の「/d/」と「/edit」の間の乱数がIDに該当します。

コードが完成したら、下記の通りLINE連携用のWebhookURLを取得する。

image.png

LINEの設定

LINE Developersに登録し、Messaging APIを作成していきます。

image.png
image.png

さいごに

今回は、自身の生活ルーティンの中で面倒だけどもやらなければならないことにフォーカスして作成してみました。
私個人としては、簡単な開発で結構使えるツールができたように感じています!
確定申告は面倒ですが、早目に準備していきましょう。

参考サイト

プログラマーになった 「中卒」 男のブログ
GASのコードを参考にさせて頂いております。

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