どうも、たけとけたです。
勉強がてら、Twitterの定期ツイートをPythonで作成してみました。
実際にできたのがこちらです。
眠たい 2021/04/30 18:01
— たけとけた@2児の父親で製造技術 (@jastaway03) 2021年4月30日
「眠たい」「お腹すいた」「からあげ食べたい」の3つの文章からランダムで1つ呟くようにできました。Herokuという無料で一定使えるサーバーを利用して、Pythonで作成することができました。
やったこと
基本的には、下記リンクのやり方をそのまま真似しています。
必要な知識はこれです。
- Pythonでのコードが読めること
- Gitを使えること
- Twitter APIを理解していること
まだPythonのコードを書くレベルには到底至っていないので今回もコピペメインですが、何をしようとしているのかはやっていくうちに分かりました。Twitter APIは分析して遊んでいた時にイメージはつかんでいたので、全体感はつかめていました。
Git がわからない
ということで早速やっていたんですが、途中の「Git init」「Git add .」がよくわからない。「Git commit」を入れると謎の文章が出てくるのでなんだこれ?となってしまいました。
そこでここからGit の勉強を始めます。下記リンクの「Gitをはじめからていねいに」というサイトが非常にわかりやすかったです。
合わせて、VCS(Virtual Control System)の勉強もしました。
これで、「ああ、herokuへコミットすればいいのね」とちょっとわかった風に進めることができました。
また、Git 入門の中でしきりに「英文で長文が出てきても怖がらない、ちゃんと読むこと」と指導を受けたので、ターミナルへの抵抗感も減った気がします。
Herokuに上げられない
必要なプログラムを準備したら、Herokuという無料サーバーにコミットしてデータをあげるんですが、これがうまくいきませんでした。どうやらPythonのバージョンがHeroku指定のものではなく、使えないよ!とはじかれてたので、HerokuのHPでサポートしているPythonのバージョンに変更しました。ここまでやればなんとかなります。
Pythonで自動ツイートを実行できない
最後に困ったのがこれ。Herokuにあげたツイート用のプログラムを動かすテストをやってみたんですが、うんともすんとも言わない。なんだこれ。
Heroku python words.py
ただ、実行だけのプログラムで何が起こっているのかわからず右往左往していました。自分の環境で動くように作っていなかったので、Google colabにコードをあげて動かしてみるも、うまくいかず。
ネットをさまよっていたら、エラーコードをPrintするコードを見つけてたのでそれを追加して動かしてみます。
これでError 401が発生してることがわかりました。調べると「Twitterに投稿する権限がないよ!」とのこと。
これはTwitter Developerの設定をTwitterの読み込みのみを許可するAPIに変えていたからでした。慌てて設定を変えて、書き込みも許可してTwitter APIを再発行します。
これをHerokuに登録し直して、再度走らせてみると、無事ツイートすることができました!
お腹すいた 2021/04/29 17:09
— たけとけた@2児の父親で製造技術 (@jastaway03) 2021年4月29日
学んだこと
今回、勉強したのはこんな内容です。
- Git の概要を理解できた
- サーバーで初めてプログラムを動かした
- エラーコードから解決策を確認した
今回、色々とググりながらやってみたんですが、勉強になることが多かったです。一筋縄ではいかなかったのですが、一つ一つわからない部分を簡単なところから勉強することで、納得感が高く進めることができました。特にGitは勉強しないといけないんだろうなあと思いながら放置していたので、今回入門編だけでも勉強できたのは良かったです!
GWはDockerを勉強しようか、このまま画像付きツイートや、Twitterの機械学習分析を自動化するか悩み中です。後者は今のレベルでやると結構つまづきそうなんですが、せっかくなんで得た知識をつなげていきたいですね!
ではでは!