mutao.net

いわゆる雑記。

GolangでLinebot②

mutaonet.hatenablog.com

前回の続き。もう少し意味のあるものにしていく。

作るもの

楽天市場APIを使って1日1回、楽天市場に出品されているワインの中でレビュー平均の降順でいくつかLineBotで通知しようというもの。

f:id:mutaonet:20210809155415j:plain

webservice.rakuten.co.jp

まずはRakuten DevelopersでアプリIDを発行してAPIをcallできるようにします。

公式の手順がわかりやすいので割愛します。

リクエストURLは以下のものを使用します。

https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?${params}

リクエストイメージ

Parameter Value
applicationId 自分のアプリID
genreId 100317
sort +reviewAverage
Hits 2

https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?applicationId=${applicationId}&genreId=100317&sort=+reviewCount

applicationIdはHerokuの環境変数に設定してos.Getenv()で取得できるようにしときます。

以下が作成物になります。

github.com

あとは Heroku Schedulerで定期実行させます。

USTでしか指定できないので、9時間差で指定します。

f:id:mutaonet:20210809160023p:plain

作ってみてよかったこと

  • 基本的な文法をおさらいできたこと。
    • すでに結構身についていることが確認できてうれしい。
  • Goのパッケージについて理解できたこと。
  • JsonのParse処理を実装できたこと。
    • 特にネストした配列の構造体を部分が理解できたのが大きかった。

反省点

  • もっと拡張性を持たせて作成すべきだった。
    • Line MessagingAPIを使用するpackageと楽天市場の検索部分は分けて管理したかった。
  • リクエストパラメータは動的に変更できるように工夫すべきだった。
  • callbackを使ったものではなくなってしまったので、自宅のラズパイとかでも問題なかった。
  • 構成図的なものが雑というかチープすぎるので無料で使える便利なツール知りたい。