Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
31
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@hujuu

Pythonを使ってTwitterに投稿する

PythonからTwitter APIを操作して、
自分のアカウントにつぶやきの投稿をします!

ちなみに今回使う、Python Twitter Toolsは投稿だけではなく、Twitterの検索結果を取得したり、ダイレクトメッセージの送信などもできるパッケージです。

設定した環境

MacBook Air (13-inch, Mid 2011)
プロセッサ: 1.8 GHz Intel Core i7
メモリ: 4 GB 1333 MHz DDR3
OSバージョン: 10.11.5
Python: 3.5.2

準備

今回はPython Twitter Toolsを利用します。

pipでインストールする手もあるみたいですが、自分はこちらからファイルをダウンロードしてインストールしました。

ダウンロードしたら、解凍したフォルダに移動してインストールをします。
(フォルダにはバージョンが記されているので、DLしたものに合わせて入力してください。)

$cd twitter-x.xx.x
$python setup.py install

pipでインストールする場合

$pip install twitter

Twiiterでアプリケーション登録をする

以下のページからTwitterのアプリケーション登録をしてAPIを使えるようにします。
アカウントは普段使って投稿しているものと同じものを使います。

登録したら、「Keys and Access Tokens」のタブを選択して、
API key, API secret, Access token, Access token secretの取得をします。

image

投稿してみよう!

それでは、以下のコードに各種Tokenを入れて、実行してみましょう。

post.py
from twitter import Twitter, OAuth

access_token = "自分のを記入"
access_token_secret = "自分のを記入"
api_key = "自分のを記入"
api_secret = "自分のを記入"

t = Twitter(auth = OAuth(access_token, access_token_secret, api_key, api_secret))

text = 'Pythonを使ってつぶやいてみました。'
statusUpdate = t.statuses.update(status=text)

# 生の投稿データの出力
print(statusUpdate)

# 要素を絞った投稿データの出力
print(statusUpdate['user']['screen_name'])
print(statusUpdate['user']['name'])
print(statusUpdate['text'])

実行すると最初に、とても長い文字列が出力されますが、これが一投稿に含まれる全てのデータです。

これだと見た目上、どんな内容がつぶやかれたのかわかりにくいので、
最後の3行で、スクリーンネームとユーザー名、投稿本文を抽出して出力しています。

post.py
# 要素を絞った投稿データの出力
print(statusUpdate['user']['screen_name'])
print(statusUpdate['user']['name'])
print(statusUpdate['text'])

抽出したいデータに応じて、[]の中を編集してみると良いと思います。
例えば、['description']とするとプロフィールの紹介文も取得できます。

投稿したり、抽出したりできる便利なPython Twitter Toolsの入門編でした。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
31
Help us understand the problem. What are the problem?