Python3でTwitter API


1.準備

下記のサイトを参考にしてください。
https://cre8cre8.com/python/twitter-api.htm

2.APIの認証設定

設定ファイル

config.py
CONSUMER_KEY = ""
CONSUMER_SECRET = ""
ACCESS_TOKEN = ""
ACCESS_TOKEN_SECRET = ""

それぞれに1.準備で作成した値を入れる。

3.Code1

まずは自分ツイートした内容を任意の数表示。

show_twi.py
# -*- coding:utf-8 -*-
import json, config
from requests_oauthlib import OAuth1Session
CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
twitter = OAuth1Session(CK,CS,AT,ATS)
url = "https://api.twitter.com/1.1/statuses/user_timeline.json"
num = input(str("何件のツイートを表示しますか?"))
params ={'count' : num}
req = twitter.get(url, params = params)

if req.status_code == 200:
    timeline = json.loads(req.text)
    for tweet in timeline:
        print(tweet['user']['name']+'::'+tweet['text'])
        print(tweet['created_at'])
        print('----------------------------------------------------')
else:
    print("ERROR: %d" % req.status_code)

4.Code2

次にキーワードを入れて検索し、任意の数表示。

search_twi.py
# -*- coding:utf-8 -*-
import json, config
from requests_oauthlib import OAuth1Session

#API認証情報
CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
twitter = OAuth1Session(CK,CS,AT,ATS)

#API取得
url = "https://api.twitter.com/1.1/search/tweets.json"

#検索情報と検索件数の入力
print("何を調べますか?")
keyword = input(">> ")
print("何件表示しますか?")
num = input()
print("---------------------------------------")

#検索情報と検索件数
params = {'q' : keyword, 'count' : num}

req = twitter.get(url, params = params)

if req.status_code == 200:
    #正常に接続できたら処理をする
    search_timeline = json.loads(req.text)
    for tweet in search_timeline['statuses']:
      print(tweet['user']['name'] + '::' + tweet['text'])
      print(tweet['created_at'])
      print('------------------------------------')
else:
    print("ERROR: %d" % req.status_code)  

5.Code3

最後にツイートしてみる。

post_twi.py
# -*- coding:utf-8 -*-
import json, config
from requests_oauthlib import OAuth1Session

CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
twitter = OAuth1Session(CK,CS,AT,ATS)

url = "https://api.twitter.com/1.1/statuses/update.json"

#投稿内容入力
print("呟く内容は?")
tweet = input('>> ')
print('-------------------------------')

#パラメータのセット
params = {"status" : tweet}

req = twitter.post(url, params = params)

if req.status_code == 200:
    #正常に処理できたら
    print("Success!")
else:
    print("ERROR : %d" % req.status_code)

6.メモ

API初めて使ったけど、便利だし、Pythonだとスッキリ書ける。