Compass note

未踏の地へ踏み出すコンパス的エンジニアノート

Python&Tweepyで遊ぶ【その2】 Tweepy のインストールからツイートするまでを解説します。

"Python&Tweepyで遊ぶ【その2】 Tweepy のインストールからツイートするまでを解説します。"

Twitter API を Python で扱う時に便利なのが Tweepy という Twitter API をラッピングしたライブラリです。

ここでは Tweepy のインストール、Python を使ったコーディング、Twitter API を介したツイート投稿までを解説します。

以下のようにツイートを API を使ってできるようになります。

実行環境|Mac OS、python、tweepy のバージョン

"実行環境|Mac OS、python、tweepy のバージョン"

  • MacOS X
  • python 3.7.7
  • pip 20.0.2
  • tweepy 3.8
bash-3.2$ uname -a
Darwin MacBook-Pro.local 19.6.0 Darwin Kernel Version 19.6.0: Tue Nov 10 00:10:30 PST 2020; root:xnu-6153.141.10~1/RELEASE_X86_64 x86_64
bash-3.2$ python -V
Python 3.7.7
bash-3.2$ pip -V
pip 20.0.2 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
$ pip show tweepy
Name: tweepy
Version: 3.8.0
Summary: Twitter library for python
Home-page: http://github.com/tweepy/tweepy
Author: Joshua Roesslein
Author-email: tweepy@googlegroups.com
License: MIT
Location: /usr/local/lib/python3.7/site-packages
Requires: requests, PySocks, six, requests-oauthlib
Required-by: 

Tweepy のインストール方法|Python パッケージ管理ツールの pip を使います

"Tweepy のインストール方法|Python パッケージ管理ツールの pip を使います"

  • Mac のターミナルでのインストールしましたが、pip が入っていれば Linux でも Windows でも同じです。

$ pip install tweepy

これで Tweepy が使えるようになります。

処理概要|Python で Tweepy を使い、ツイートする

"処理概要|Python で Tweepy を使い、ツイートする"

Tweepy を使って python コードを組み立てる処理概要です。

  • 事前準備
    • tweepy ライブラリの読み込み
    • Tweitter API token, secret key のセット
    • API レート制限時の挙動設定
  • 初期パラメータセット
    • 自分のスクリーン名の取得(アカウントの @aaaaa の部分)
    • ツイート文言のセット
  • メイン処理
    • api.update_status()を使ってツイート
    • エラーハンドリング

ソースコード|Tweepy を用いてツイートする Python コード

"ソースコード|Tweepy を用いてツイートする Python コード"

my_tweet.py

import tweepy

CONSUMER_KEY="XXXXXXXXXX"
CONSUMER_SECRET="XXXXXXXXXX"
ACCESS_TOKEN="XXXXXXXXXX"
ACCESS_SECERET="XXXXXXXXXX"

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECERET)

api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)

my_name = api.me()
my_screen_name = my_name.screen_name

my_tweet = "Hello twitter land !!"

def main():    
    try:
        api.update_status(my_tweet)
        print(my_screen_name,":You tweeted :",my_tweet)
    except Exception as e:
        print(e)


main()

コード解説 1. 事前準備|Tweepy の ACCESS TOKEN、SECRET KEY をセット

"解説 1. 事前準備|Tweepy の ACCESS TOKEN、SECRET KEY をセット"

import tweepy

CONSUMER_KEY="XXXXXXXXXX"
CONSUMER_SECRET="XXXXXXXXXX"
ACCESS_TOKEN="XXXXXXXXXX"
ACCESS_SECERET="XXXXXXXXXX"

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECERET)

api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
  • 必要なライブラリの読み込みを行います。
コード 意味
import tweepy Tweepy を読み込む
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECERET)
コード 意味
CONSUMER_KEY="XXXXXXXXXX" 自分の CONSUMER_KEY をセット
CONSUMER_SECRET="XXXXXXXXXX" 自分のCONSUMER_SECRET をセット
ACCESS_TOKEN="XXXXXXXXXX" 自分の ACCESS_TOKEN をセット
ACCESS_SECERET="XXXXXXXXXX" 自分の ACCESS_SECERET をセット
  • Tweepy コマンド定義
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
コード 意味
wait_on_rate_limit レート制限が補充されるのを自動的に待つかどうか
wait_on_rate_limit_notify Tweepyがレート制限の補充を待っているときに通知を出力するかどうか

コード解説 2. 初期パラメータセット|Tweepy ツイートするためのパラメータ

"コード解説 2. 初期パラメータセット|Tweepy ツイートするためのパラメータ"

  • screen name (@name)を取得
my_name = api.me()
my_screen_name = my_name.screen_name
  • Twitter でツイートしたい文言のセット

my_tweet = "Hello twitter land !!"

コード解説 4. メイン処理|Tweepy で Twitter API を介してツイートする

"コード解説 4. メイン処理|Tweepy で Twitter API を介してツイートする"

  • api.update_status() で my_tweet にセットした文言をツイートする
  • print()でツイート内容を標準出力
  • try 〜 exception で API エラー発生時にエラー内容を標準出力する
try:
    api.update_status(my_tweet)
    print(my_screen_name,":You tweeted :",my_tweet)
except Exception as e:
    print(e)

プログラム実行|作成した python コードを実行します。

"Python プログラム実行|作成した python コードを実行します。"

ターミナルから python プログラムを実行します。

$ python my_tweet.py 
my_screen_name :You tweeted : Hello twitter land !!

こんな感じにツイートされます。

まとめ|Tweepy を pip install し api.update_status() でツイートする

"まとめ|Tweepy を pip install し api.update_status() でツイートする"

  • Python Tweepy でツイートするには api.update_status()コマンドを使います
  • エラー処理は try 〜 exception で API エラー内容を拾うことができます