yukke_longriders

ぼちぼちがんばる

Python を使って Twitter に投稿するよ

なんかしようかなといろいろ見ていたら学科の人がTiwtterで課題や試験情報を知らせるBOTを作っていたのを思い出したので、似たようなことをやろうと思いました。
とはいえ、自分には限られた知識しかないので簡単なものから始めていきます。
いくつかの言語でできるみたいですが、Pythonは多少知っているのでこれでいきたいと思います。

導入

環境は Ubuntu 14.04.5 LTS の64bit です。
まず専用のアカウントを作ります。
そのあとに開発者用の登録等があるのですが、ここを参考にしました。

の4つの情報はどこかにコピペして保存しておいてください。

次にライブラリのTweepyをインストールします。

$ pip install tweepy

で完了です。
エラーが出たら、足りないものを導入してください。

つぶやく

最初は「初めての投稿」とつぶやいてみます。
post.py

#!/usr/bin/python
# coding: utf-8
import tweepy

#Authorization
consumer_key = "xxxxx"
consumer_secret = "xxxxx"
access_token = "xxxxx"
access_token_secret = "xxxxx"
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

#Tweet
api.update_status('初めての投稿')

これで

$ python post.py

を実行すれば「初めての投稿」とつぶやかれています。

改良する

これではつぶやくたびに編集しなければなりません。なので標準入力から自由につぶやけるようにします。
post1.py

#!/usr/bin/python
# coding: utf-8
from tweepy import *

#Authorization
f = open('config.txt')
data = f.read()
f.close()
info = data.split('\n')

def get_oauth():
    consumer_key = info[0]
    consumer_secret = info[1]
    access_token = info[2]
    access_token_secret = info[3]
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    return auth

def get_tweet():
    print "tweet"
    tweet = raw_input('>> ')
    return tweet

auth = get_oauth()
api = API(auth)
tweet = get_tweet()
api.update_status(tweet)

毎回4つの認証情報をコピペするのは面倒です。
他のファイルにconfig.txtで保存してそこから参照します。

$ python post1.py
tweet
>> 

これで自由につぶやけるようになりました!