真の‪ツイートふぁぼマンになったので自動化した


概要

色々あって友達とTwitterでやり取りをしていたら真のおっぱいツイートふぁぼマンになった。
ずっとTwitterで自動化したいと思っていたこともあったので練習がてら、その人のツイートに「おっぱい」が含まれていたらいいねをするツールを作ろうと思った。

どちらかというと初めてTwitterAPIを叩いたよっていう個人的なメモ。

準備

アプリケーション登録

Consumer Key
Consumer Secret
Access Token
Access Token Secret

を発行するためにTwitter Application Managementにアクセスして必要事項を入力する。
最初はAccess TokenとAccess Token Secretが発行されていないので、Keys and Access Tokensの下部にあるCreate my access tokenボタンをクリックして、生成する必要がある。
詳しくはググって。

ライブラリのインストール

自分はtwitterを使った。
https://github.com/sixohsix/twitter

pip install twitter

プログラムを書く

参考にしたサイト
Pythonでみんなの呟きを解析して自動でツイートするTwitter Botを作った話
というかここのコードをそのm(ry
Twitter REST APIの使い方

プログラム

twibot.py
# -*- coding: utf-8 -*-

from twitter import *

# キーとアクセストークンを設定する
auth = OAuth(consumer_key="***************************",
             consumer_secret="*******************************",
             token="***************************",
             token_secret="***************************")

t = Twitter(auth=auth)

# UserStreamを取得
t_userstream = TwitterStream(auth=auth, domain='userstream.twitter.com')

# @aokani_3の"おっぱい"を含むツイートを検索(リプライ, RTを除く)してふぁぼする関数
def like():

    tweet = msg['text']
    tweet_id = msg['id']
    screen_name = msg['user']['screen_name']

    if "aokani_3" in screen_name and "おっぱい" in tweet and "RT" not in tweet and "@" not in tweet:
        id = int(tweet_id)
        print('ツイート発見')
        t.favorites.create(_id=id, include_entitles="true")
        print('いいね完了')

# 実際にここが動く
print('start')
for msg in t_userstream.user():
    print('rooding')
    if 'text' in msg:
        like()

JSONで返ってくるので必要な値(msg['text']ツイート文、msg['id']Tweet ID、msg['user']['screen_name']ユーザ名(スクリーンネーム))を取り出す。
Tweet Object(ツイートオブジェクト)の説明を見ながら書いた。

if文で判定。
t.favorites.create(_id=id, include_entitles="true")でそのツイートをいいねする。
POST favorites/create - いいねを付けるを見た。

あとはfor文で回すだけ。

結論

結論というほどでもないけど……

とりあえず、UserStreamが廃止されるのを知ったのでそこを変えるのを考えないといけない。