Goに入門する
- Goで定時で動くやつを作る
- Todoistからデータを取得→今日のタスク or 残りinboxを毎朝お届けしてくれるLINE Botを作る
構造体作るのですごい手間取ったので下記を参考にjson apiから構造体にしてくれるやつを使う。公式にかいてあるのコピペって流し込むだけでいいから楽。
ちなみにTodoistのAPIのトークンは連携機能の1番下にある。
LINEやTwitterだと別ページから申請みたいなのしないといけないから、お手軽でちょっとびっくり。
期日のデータがtasksのリストの中にないからどこにあるんだろ〜〜〜と思って探したら1個ずつの時は出てくるのか…。
15分に450回はリクエスト投げていいみたいなので、タスクためすぎなければ全然1個ずつみても大丈夫だけど、なんか他の方法考えたいな。
今日のタスクを前日にちゃんとセットしてるとも限らんし
sync apiの方でどうにかできんかなと思ったけどこっちはどっちかっていうと操作系っぽい。
AWSとかで動かすとして、最終目標としてはこんな感じかな
うごくとき
- 定時で動かす(7時くらい。かんたんに変更できるようにしておく)
うごき
- 今日の日付でkvsにタスクID一覧を保存
- 昨日の日付のデータがあればひっぱりだし…
a. 昨日あるけど、今日ないID = 達成数として算出
b. 昨日ないけど、今日あるID = 増えたTODOとして算出 - ↑をLINEに投げる
とりあえずタスク数をひしょぼっとに投げられるところまでやろう
inboxだけfilterしたくてもよもよしてたんだけど、
まずfilterするためにgo-funkをいれて、そしてlenをできるようにするために後ろに謎なものを付与する…ちょっと基礎をちゃんとやった方がいい気がしてきた
TOKEN系を.envに吐き出したのでgitにpush
.envにするのはこのZennを参考にした
あしたはHerokuにデプロイして今いったん実装したいものは終わりかな〜〜実装中にでてきた謎記法とかエラーの書き方とか適当にコピペってバラけちゃったからどれがいいのかとか調べたい!
このへんを参考にデプロイ
昨日の朝はだめだったので設定かえておいた
昨日(さっき)はエラーハンドリングでちょっと悩んでた
あとで公式ちゃんと呼んだ方がいいんだと思うけど
-
err := hogehoge()
はあとで他関数で同じ書き方した時に再代入でエラーになる -
piyo, err := hogehoge()
はあとで他関数で同じ書き方をしてもerrは再代入エラーにならない -
if err := hogehoge(); err!= nil
はあとで他関数で同じ書き方をしてもerrは再代入エラーにならない
1と3の違いは『3はerrという変数の生存期間がifの中だけになってるんだろな』で理解できるけど、1と2の違いがわからん、分割代入かと思ってたんだけど違うのかな?
そういえばこれ散々4〜5時間ごとに発動した挙句1週間くらいで止まったな、Herokuが悪いのかよくわからんけどまあやりたいことは達成してるので、いいか…。
明日明後日でまとめかいて終わろう