仮想サーファーの波乗り

仮想サーファーの日常

プログラミング・エンジニアのスキルアップ・ブログ運営などに関してよく書く雑記ブログ

➡ Udemyで8/27(木)まで割引セール開催中! 1,200円〜で普段の90%以上OFF!

Pythonでwebアプリケーション開発⑤ ~TwitterAPIでタイムライン表示~


こんばんは!


TwitterのAPIを触ってみよう企画の第2回目です。今回は、TwitterAPIを使ってタイムラインのつぶやき情報を取得していきます。


TwitterのAPI利用準備


まだTwitterのAPI準備をしていない方は、こちらを参考にAPIを使える状態にしておいてください。


Twitterのタイムライン情報を一度だけ取得


Requests-OAuthlibを使ってTwitterにリクエストをしてタイムライン情報を取得してタイムライン上に表示する方法です。
まずは、以下のコマンドでRequests-OAuthlibをインストールします。

$ pip install requests-oauthlib


次に、「twitter_timeline_request.py」というファイル(ファイル名はなんでもいいです)を作成し、以下のようにコードを書いていきます。

import os
import tweepy

CONSUMER_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('----------------------------------------------------------------------------------')
    print('@' + status.user.screen_name, status.text)


実行してみましょう。

$ forego run python twitter_timeline_request.py


タイムラインでのつぶやきがterminal表示されました。 f:id:virtual-surfer:20180212100607p:plain


実際にTwitterで確認しても、タイムライン上のデータであることがわかります。 f:id:virtual-surfer:20180212100702p:plain


Twitterのタイムライン情報を継続的に取得


次に、一度だけタイムライン情報を取得するのではなく、Twitterのサーバーから継続的にタイムライン情報が送られてくるようにしてみましょう。


「twitter_timeline_streaming.py」というファイルを作成して、以下のように記述します。

import os
import tweepy

CONSUMER_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)

class MyStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        print('----------------------------------------------------------------------------------')
        print('@' + status.author.screen_name, status.text)

stream = tweepy.Stream(auth, MyStreamListener())
stream.sample(languages=['ja'])


以下のコマンドでファイルを実行すると、タイムラインのつぶやき情報が継続的に表示され続けます。表示を中断したい場合は、「control」 + 「C」を押して中断させます。

forego run python twitter_timeline_streaming.py


継続的につぶやき情報が更新されていることがわかります。 f:id:virtual-surfer:20180212101744p:plain


まとめ


今回はタイムラインのデータ取得・表示の方法を見ていきましたが、これをアプリケーションに組み込めばマストドンみたいに読込みなしでタイムラインの情報が更新されていくようなものも作れそうです。APIの利用方法ある程度理解できたら、Twitterの各種操作を自動化するアプリケーション開発進めていきたいですね。


Pythonをしっかり学びたい方向け

最後に、Pythonをしっかり学びたいという方向けにおすすめの学習ツールを紹介しておきます。


スッキリわかるPython入門 スッキリわかるシリーズ

そもそもPythonの書き方が分からないという方はこちら、安いし分かりやすいのでオススメです。


プログラミング言語 Python 3 入門

f:id:virtual-surfer:20191207103500p:plain

このコースで学べること

  • Pythonの基礎(データ、制御フロー、関数、データ構造、モジュール、例外(エラー)、クラス、入力と出力、標準ライブラリ)
  • ターミナルを使用したPythonの実行
  • PyCharmを使用したPython ファイルの作成・デバッグ実行

Pythonの基礎の基礎が丁寧に開設されていて、Python初心者の方でもPythonへの理解が深まりやすいUdemyのコースです。

Pythonの仕組みを基礎からしっかりと理解しておきたい方にオススメです。


【プログラミング言語 Python 3 入門】をUdemyで見てみる


Pythonで作業の自動化・効率化

Pythonでのプログラミング学習中の方向けに、Noteでより詳細なプログラミングチュートリアルを配信しているので、そちらもチェックしてみてください( ・v・)/

note.mu


では!