メモ形式で失礼します。
Cygwin とは
Cygwin(シグウィン)は、Windowsオペレーティングシステム上で動作するUNIXライクな環境の一つである。 フリーソフトウェアである。(Wikipediaより)
これをWindows PCにインストールしておくと、Mac OSなどに付いている黒い画面で高機能なターミナルに似たものを使えるようになります。今回の目的を達成するために、これに Python をインストールしておきます。
pip をインストールする
以下のコマンドを実行して、Cygwinにpython用のパッケージを管理するためのpipをインストールします。
easy_install pip
1分ほどでインストールが完了します。
requests-oauthlib をインストールする
requests-oauthlib は、Twitter の Oauth認証周りをこなしてくれるとてもありがたいライブラリです。pipを使ってこれをインストールします。以下のコマンドを実行すればOKです。
pip install requests requests_oauthlib
つぶやくための鍵をもらう
プログラムから Twitter につぶやきを投稿するときは、基本4種類のキーが必要です。所有している適当なツイッターアカウントでログインして https://apps.twitter.com/ にアクセスします。ページの指示に従ってアプリ登録をして、Consumer Key
、Consumer Secret
、Access Token
、Accesss Token Secert
をそれぞれコピーして控えておきます。(外部に漏らさないように注意して管理します)
Pythonスクリプトを書く
以下の Pythonスクリプトを書いて、例えばpiyo.py
のような名前で保存します。プログラム中の4種類のキーの部分には、先ほど取得した適切な値を与えてください。
# -*- coding: utf-8 -*- # piyo.py from requests_oauthlib import OAuth1Session import sys ConsumerKey = '' ConsumerSecret = '' AccessToken = '' AccesssTokenSecert = '' # ツイートを投稿するためのURL url = "https://api.twitter.com/1.1/statuses/update.json" # ツイートの本文 argvs = sys.argv reply = "" txt = argvs[1] if len(argvs) == 3: reply = "@{}".format(argvs[2]) tweet = "{} {}".format(reply, txt) q = {"status": tweet} # OAuth認証で POST method で投稿 twitter = OAuth1Session(ConsumerKey, ConsumerSecret, AccessToken, AccesssTokenSecert) req = twitter.post(url, params = q) # レスポンスを確認 if req.status_code == 200: print ("Congratulations!")
つぶやく
リプライを付けないで普通につぶやくためには、
python piyo.py "Hello, world!"
のようにします。リプライを付ける場合は次のようなコマンドになります。
python piyo.py Hey! ユーザー名
「ユーザー名」は半角で書き、「@」を含めないことに注意してください。
実際につぶやいてみたときの写真です。
投稿が完了するまでの時間が結構長いので、残念ながら、日常で使うには少し辛いかもしれません。改良を加えながら用途はこれから考えようと思います。