lisz-works

技術系だけど関係ないこと多い系ブログ

TwythonでPythonでTwitter!OAuthしてツイートと検索!

【スポンサーリンク】

Python ロゴ

Twitterを操作する、TwythonというPythonのライブラリを使ってみました!

導入から、OAuth認証を行って、ツイートや検索をするまでをご紹介します!

ライブラリの導入

ターミナル(コマンドプロンプトなど)から、下記コマンドを実施してください。

pip install twython

インストールはこれだけ!

準備

方法は2つです。

どちらも「Consumer Key」と「Consumer Secret」を用意しないといけません。

Twitterからアプリ情報を作成し、この2つを取りましょう。

自分用に試しに使ってみる(OAuth1)

自分用に試しに使ってみる1番手っ取り早い方法は、OAuth Token情報を自前で持ってきてセットしてあげる方法です。
(OAuth1:User Authenticationという模様)

ツイート等、アカウントにログインして行うような操作は、このOAuth1を使って認証しないと使えないようです。

from twython import Twython, TwythonError

# 設定
APP_KEY = "app key"
APP_SECRET = "app secret"
OAUTH_TOKEN = "oauth token"
OAUTH_TOKEN_SECRET = "oauth token secret"

# Requires Authentication as of Twitter API v1.1
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

# ツイート
try:
    twitter.update_status(status='See how easy this was?')
except TwythonError as e:
    print(e)

アプリ認証(OAuth2)

OAuth1に対して、読み取り専用の操作のみ行う場合は、OAuth2でもOK!

例えば検索とかです。

# -*- coding: utf-8 -*-
from twython import Twython, TwythonError
import json    # JSON解析に必要
import codecs  # UTF-8でファイルIOするために必要

APP_KEY = "app key"
APP_SECRET = "app secret"

# OAuth2(AccessTokenの取得)
twitter = Twython(APP_KEY, APP_SECRET, oauth_version = 2)
ACCESS_TOKEN = twitter.obtain_access_token()
twitter = Twython(APP_KEY, access_token=ACCESS_TOKEN)

# 検索
twitter.search(q="python", result_type="popular")

OAuth2でツイートした場合

読み取り専用なので、ツイート等のような「ユーザアカウントありきの操作」を行うとバッドリクエストが返ってきます。

from twython import Twython, TwythonError

# 設定
APP_KEY = "app key"
APP_SECRET = "app secret"

# アクセストークンの取得
twitter = Twython(APP_KEY, APP_SECRET, oauth_version = 2)
ACCESS_TOKEN = twitter.obtain_access_token()

# ツイート
try:
    twitter.update_status(status='test oauth2')
except TwythonError as e:
    print(e)

結果

Twitter API returned a 400 (Bad Request), Bad Authentication data.

あとがき

いかがでしたでしょうか?

よくあるアプリで、よくやっている「認証」はOAuth1でやるようです。
が、今回のようにアカウントの全情報を開示してもらう訳にはいかないので、よくあるあの手順を行います。

が、それに今、手間取っています(笑)

成功したらまた記事にあげますー。