皆さんこんにちは。
仮想通貨投資を行っている方の中にはDeFiのイールドファーミングを利用している方も多くいるのではないでしょうか。
Defiサービスの中でも容易に高利回りの利息収入が手にすることもでき、人気がありますが税金計算が厄介ですよね。
確定申告のためにも、受け取った利息の数量とレートを記録していかなければいけません。
利息取得の度、いちいちExcelを開いて記録してなんて本当に面倒くさい!
という事で、LINEとGASを使って手軽にGoogleスプレッドシートにデータを蓄積していくアプリを作ってみました。
#今回作成したもの
LINE、GAS、スプレッドシートを連携させることで、LINEに入力した情報をスプレッドシートへ転記します。
①LINEへ「$"通貨名" "利息" "通貨のレート"」の形で入力します。
(各要素の間は半角スペース)
②Webhookを利用し、GASへ連携されます。
③Googleスプレッドシートの指定されたセルに入力されます。
#使用したツール
・Googleスプレッドシート
・Google Apps Script
・LINE Messaging API
#Googleスプレッドシートの準備
下記のように、記録用のスプレッドシートを作成する。
#Google Apps Script
GASを新規作成する。
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を取得する。
#LINEの設定
LINE Developersに登録し、Messaging APIを作成していきます。
#さいごに
今回は、自身の生活ルーティンの中で面倒だけどもやらなければならないことにフォーカスして作成してみました。
私個人としては、簡単な開発で結構使えるツールができたように感じています!
確定申告は面倒ですが、早目に準備していきましょう。
#参考サイト
プログラマーになった 「中卒」 男のブログ
GASのコードを参考にさせて頂いております。