TOP

公式アカウントのフォロワー数変化(Goで書いた)

このエントリーをはてなブックマークに追加

ホーム > 個人開発したことまとめ > 公式アカウントのフォロワー数変化(Goで書いた)


公式アカウントのフォロワー数変化(Goで書いた)

ゲームの公式アカウントのフォロワー数に応じてプレゼントがあるキャンペーン。



作ったもの(実際に稼働したときのツイート)

毎朝フォロワー数を通知してくれるbot



どんな仕組み?


Go ソースコード(bot)


主処理。31行目の TweetPublicAccount() が入口


ぶつかった壁とか学んだこととか

エラーで詰まったとかはあんまりないんだけど、これまで python で書いてた twitter bot の Go 版ができた。
Go はコンテナと相性がいいんだなという学びはあるんだけど、それに気づくのはまだ先の話。。。

tweet するためのライブラリ

anaconda というライブラリを使ってツイートするプログラム。
TweetPublicAccount 関数の中でツイート用のインスタンス生成し、変数 api に格納(36行目)。67行目でツイート実行。
画像をツイートしたい場合は54~58行目。ツイート実行の前に api.UploadMedia で画像を upload する必要がある。引数の型が base64String なので画像を base64エンコードしている。
そのあと、 url.Values{} の "media_ids" に格納。複数ある場合はカンマ区切りで設定。

参考

グラフ生成するためのライブラリ

plot というライブラリを使って画像生成。
上記ソースの82行目 createGraph() 関数の中。90行目で呼び出している getData() 関数で2週間分のデータを取得。
93行~113行目の処理で縦軸・横軸の設定、115~120行目でグラフの見栄えを調整。
124~133行目でグラフを生成。

参考

postgres DB接続のためのライブラリ

pq というライブラリを使って postgres DB 接続。ライブラリは import するだけで、コード上使用するのは database/sql という標準ライブラリ。
専用のパッケージを import (16行目の _ "github.com/lib/pq" )して connection 生成(42行目)してあげればあとはSQL文字列を実行するだけ。

上記42行目の呼び出し先 ※DBとのコネクション生成(抜粋)

136行目の getData() 関数、141行目の insData() 関数がSQL実行部分の実装例。

参考