たけとけたと片付かない部屋

製造技術の仕事や家事・育児、趣味について書きます。

PythonでTwitterの定期ツイートを作るまで

どうも、たけとけたです。

勉強がてら、Twitterの定期ツイートをPythonで作成してみました。

 実際にできたのがこちらです。

「眠たい」「お腹すいた」「からあげ食べたい」の3つの文章からランダムで1つ呟くようにできました。Herokuという無料で一定使えるサーバーを利用して、Pythonで作成することができました。

やったこと

基本的には、下記リンクのやり方をそのまま真似しています。

qiita.com

必要な知識はこれです。

  • Pythonでのコードが読めること
  • Gitを使えること
  • Twitter APIを理解していること

 まだPythonのコードを書くレベルには到底至っていないので今回もコピペメインですが、何をしようとしているのかはやっていくうちに分かりました。Twitter APIは分析して遊んでいた時にイメージはつかんでいたので、全体感はつかめていました。

www.taketoketa.com

Git がわからない

 ということで早速やっていたんですが、途中の「Git init」「Git add .」がよくわからない。「Git commit」を入れると謎の文章が出てくるのでなんだこれ?となってしまいました。

 そこでここからGit の勉強を始めます。下記リンクの「Gitをはじめからていねいに」というサイトが非常にわかりやすかったです。

github.com

合わせて、VCS(Virtual Control System)の勉強もしました。

github.com

 これで、「ああ、herokuへコミットすればいいのね」とちょっとわかった風に進めることができました。

 また、Git 入門の中でしきりに「英文で長文が出てきても怖がらない、ちゃんと読むこと」と指導を受けたので、ターミナルへの抵抗感も減った気がします。

Herokuに上げられない

 必要なプログラムを準備したら、Herokuという無料サーバーにコミットしてデータをあげるんですが、これがうまくいきませんでした。どうやらPythonのバージョンがHeroku指定のものではなく、使えないよ!とはじかれてたので、HerokuのHPでサポートしているPythonのバージョンに変更しました。ここまでやればなんとかなります。

Pythonで自動ツイートを実行できない

 最後に困ったのがこれ。Herokuにあげたツイート用のプログラムを動かすテストをやってみたんですが、うんともすんとも言わない。なんだこれ。

Heroku python words.py 

  ただ、実行だけのプログラムで何が起こっているのかわからず右往左往していました。自分の環境で動くように作っていなかったので、Google colabにコードをあげて動かしてみるも、うまくいかず。

 ネットをさまよっていたら、エラーコードをPrintするコードを見つけてたのでそれを追加して動かしてみます。

〜
if req.status_code == 200: print("Succeed!") else: print("ERROR : %d"% req.status_code)
〜

qiita.com

 これでError 401が発生してることがわかりました。調べると「Twitterに投稿する権限がないよ!」とのこと。

 これはTwitter Developerの設定をTwitterの読み込みのみを許可するAPIに変えていたからでした。慌てて設定を変えて、書き込みも許可してTwitter APIを再発行します。

 これをHerokuに登録し直して、再度走らせてみると、無事ツイートすることができました!

学んだこと

今回、勉強したのはこんな内容です。

  • Git の概要を理解できた
  • サーバーで初めてプログラムを動かした
  • エラーコードから解決策を確認した

 今回、色々とググりながらやってみたんですが、勉強になることが多かったです。一筋縄ではいかなかったのですが、一つ一つわからない部分を簡単なところから勉強することで、納得感が高く進めることができました。特にGitは勉強しないといけないんだろうなあと思いながら放置していたので、今回入門編だけでも勉強できたのは良かったです!

 GWはDockerを勉強しようか、このまま画像付きツイートや、Twitterの機械学習分析を自動化するか悩み中です。後者は今のレベルでやると結構つまづきそうなんですが、せっかくなんで得た知識をつなげていきたいですね!

ではでは!