先日、tweepyというPythonモジュール(とTwitterAPI)を使って、PythonスクリプトからTwitterにつぶやけるものを作りました。

参考:Twitterの操作ができるモジュールTweepyで、Pythonプログラムからツイートする - テストウフ

ただ、前回の記事の状態だと、ファイルのなかにツイート内容を記載したうえで

$ python hoge.py

とわざわざコマンドを打たないといけない状態だったので、非常に不便。

この辺を解消して仕組み化しました。

ゴール

以下のような形でTwitterにつぶやけるようにする

$ tw こんにちは世界

手順

前回の記事のモノがある前提で進めます

1. コマンドライン引数を受け付けるように変更

引数はツイートする文字列だけ、という前提で作ります。

コマンドライン引数を受け取るには、sys.argvを使います。

import tweepy
import sys

auth = tweepy.OAuthHandler("hoge", "hoge")
auth.set_access_token("hoge", "hoge")

api = tweepy.API(auth)

api.update_status(sys.argv[1])

sys.argvの0番目にはファイル名が来るので、コマンドラインから渡した引数は1番目に入っています。

これで、たとえば

$ python tweet.py ここにツイート内容を書く

のような形で実行すると、実際に「ここにツイート内容を書く」とツイートされます。

2. zshのエイリアス設定

上記の手順までだと、毎回スクリプトのあるフォルダに移動するかパスを指定してあげる必要があって、面倒です。 今回は目の前のMacで動けばいいやということで、作った.pyファイルの場所は固定してしまって、zshのエイリアスで対応します。

.zshrcの中に以下を記載します。ファイルの場所やコマンド名は適宜で。

alias tw='python /Users/yoshikiito/Documents/Temp/twee.py'

今回はtwという2文字のコマンドとして登録することにしました。

これで、ゴールの項に書いたような

$ tw こんにちは世界

という形で、ターミナルからツイートができるようになりました。

hello

Twitterのタイムラインを見なくていいけどさらっとつぶやきたい、なんてときに便利です。