Windows 10のWSLのUbuntu 16.04とPython 3.5.2とTwitter APIを使ってツイートする方法と、タイムラインのツイートをコマンドラインに表示する方法をシェアします。
0.用意する環境や準備
今回用意した環境は以下のとおり。
・Windows 10 バージョン1709
・(WSL)Ubuntu 16.04
・Python 3.5.2 (仮想環境導入済)
・Twitter API:キーとトークン
Windows 10にWSLのUbuntu 16.04をインストールする方法と、Python 3.5.2の仮想環境を整えるまでの手順は以下の記事をご参照のこと。
Twitter APIのキーとアクセストークン取得がまだの場合は以下記事の手順で取得しておきます。
Twitterキーとアクセストークンを環境変数ファイルに保存
Twitterのキーとアクセストークンは環境変数ファイル(.env)に保存しておきます。
CONSUMER_KEY=aaaa
CONSUMER_SECRET=bbbb
ACCESS_TOKEN=cccc
ACCESS_TOKEN_SECRET=dddd※aaaa~ddddの部分にTwitterAPIで取得した自分のキーとアクセストークンを保存
『.env』ファイルはUbuntuユーザーフォルダ直下にあります(隠しファイルとなっている場合あり)。
C:\Users\【Windowsユーザー名】\AppData\Local\Packages\
CanonicalGroupLimited.UbuntuonWindows_*\
LocalState\rootfs\home\【Ubuntuユーザー名】\.env
『.env』ファイルがない場合はテキストエディタで作成します。
環境変数ファイル(.env)からキーとアクセストークンを読み込むようにすれば、スクリプトファイルを公開してもキーとアクセストークンを知られずに済みます。
foregoとtweepyをインストール
foregoというツールを使って環境変数ファイル(.env)からキーとトークンを読み込むので、foregoをインストールします。
$ wget https:// bin. equinox. io/ c/ ekMN 3 bCZFUn/ forego-stable-linux-amd 64. deb
$ sudo dpkg -i forego-stable-linux-amd 64. deb
またPython3対応のtweepyというライブラリを使います。
$ pip install tweepy
1.Python3とTweepyでつぶやく手順
Python3を使ってつぶやくスクリプトはこんな感じ。
import os
import tweepyCONSUMER_KEY = os.environ[CONSUMER_KEY]
CONSUMER_SECRET = os.environ[CONSUMER_SECRET]
ACCESS_TOKEN = os.environ[ACCESS_TOKEN]
ACCESS_TOKEN_SECRET = os.environ[ACCESS_TOKEN_SECRET]auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)tweet_text = "WSL版Ubuntu16.04とPython3.5.2とTwitterAPIでつぶやきテスト"
api = tweepy.API(auth)
api.update_status(tweet_text)
Ubuntuユーザーフォルダ直下に上記スクリプトファイル(仮にtest_tweet.py)を保存したらUbuntuを起動し、環境変数ファイル(.env)とスクリプトファイル(.py)に最低でも読込権限を付与します。
$ chmod 400 .env
$ chmod 400 test_tweet.py
次に仮想環境(仮にtest_venv)にアクティベート。
$ . test_venv/bin/activate
そしてforegoを使ってスクリプトファイルを実行します。
(test_venv) $ forego run python test_tweet.py
コマンドラインに何も表示されなければOK。
自分のTwitterアカウントを見てちゃんとつぶやけているか確認しましょう。
WSL版Ubuntu16.04とPython3.5.2とTwitterAPIでつぶやきテスト
— あひるうさぎ (@ahiru8usagi) 2018年4月12日
2.Python3とtweepyでタイムラインを表示する手順
Python3でタイムラインのツイートをコマンドラインに表示するスクリプトはこんな感じです。
import os
import tweepyCONSUMER_KEY = os.environ[CONSUMER_KEY]
CONSUMER_SECRET = os.environ[CONSUMER_SECRET]
ACCESS_TOKEN = os.environ[ACCESS_TOKEN]
ACCESS_TOKEN_SECRET = os.environ[ACCESS_TOKEN_SECRET]auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)
public_tweets = api.home_timeline()for status in public_tweets:
print(@ + status. user. screen_name, status.text)
Ubuntuを立ち上げ環境変数ファイル(.env)と上記スクリプトファイル(仮にrest_timeline.py)に読込権限を付与。
$ chmod 400 .env
$ chmod 400 rest_timeline.py
仮想環境(仮にtest_venv)にアクティベートし、foregoを使ってスクリプトファイルを実行します。
$ . test_venv/bin/activate
(test_venv) $ forego run python rest_timeline.py
タイムラインに流れるツイートがコマンドラインに表示されます。
おわりに
以上、Python3とTwitter APIを使ってつぶやきのテストとタイムラインの表示でした。Windows 10上のUbuntu 16.04でもきちんと動作していて面白いです。