ゼロ知識人の備忘録

ゼロ知識人の備忘録

プログラム的な話題の備忘録的なやつ

Python3でTwitter触ってみた

準備

とりあえずtwitterをpipでインストール twitter

apps.twitter.com を英語読みながら作って * CONSUMER_KEY * CONSUMER_SECRET_KEY * ACCESS_TOKEN * ACCESS_TOKEN_SECRET をメモってjsonに入れとく

{
    "CONSUMER_KEY":"",
    "CONSUMER_SECRET_KEY":"",
    "ACCESS_TOKEN":"",
    "ACCESS_TOKEN_SECRET":""
}

とりあえずtokenクラスでも作っとくかということで

token.py

from twitter import *
from src import tools as T
class Token:
    def __init__(self):
        self.ACCESS_TOKEN        =' ' # ACCESS_TOKEN
        self.ACCESS_TOKEN_SECRET =' ' #ACCESS_TOKEN_SECRET
        self.CONSUMER_KEY        =' ' #CONSUMER_KEY
        self.CONSUMER_SECRET_KEY =' ' #CONSUMER_SECRET_KEY
    
    def loadToken(self, jsonPath):
        data                     = T.readJson(jsonPath)
        self.ACCESS_TOKEN        = data['ACCESS_TOKEN']
        self.ACCESS_TOKEN_SECRET = data['ACCESS_TOKEN_SECRET']
        self.CONSUMER_KEY        = data['CONSUMER_KEY']
        self.CONSUMER_SECRET_KEY = data['CONSUMER_SECRET_KEY']
        
    #Debug
    def print_token(self):
        print(self.ACCESS_TOKEN)
        print(self.ACCESS_TOKEN_SECRET)
        print(self.CONSUMER_KEY)
        print(self.CONSUMER_SECRET_KEY)

OAuth認証

結構簡単でこれだけ

main.py

token = TK.Token()
token.loadToken(jsonPath)

auth = OAuth(token.ACCESS_TOKEN, 
             token.ACCESS_TOKEN_SECRET, 
             token.CONSUMER_KEY, 
             token.CONSUMER_SECRET_KEY)

t = Twitter(auth=auth)

タイムラインをひっぱてきて出力する

メインから関数呼べるように関数だけ

timeLine.py

def getTimeLine(t):
    
    timelines = t.statuses.home_timeline()

    for timeline in timelines:
        lang = timeline['lang']
        if lang == 'ja':
            username=timeline['user']['name']
            text=timeline['text']
            print(username + ':')
            print(text)
            print(';----------------------\n')

結構たくさん取れる情報あるからやってみるといいかも データサイエンスとかやったことないけど十分できそう

ツイートする

メインから呼べるように関数だけ

tweet.py

def tweet(t):
    while True:
        print('いまどうしてる?')
        tweet = input()
        if len(tweet) >= 140:
            print('長すぎるよ')
            print(str(len(tweet)) + '文字')
        else:
            t.statuses.update(status=tweet)
            break

すごく簡単ですね

まとめ

ほかにもtwitterいじれるライブラリはあるみたいだけどとりあえず今回はこれで

Qt5とかでGUIつくったらそれっぽくなりそう

1時間くらいで調べながらつくれたので私みたいな初心者にはちょうどいかもね

このブログの情報はあってないかもしれないので注意してください