PythonでTwitter API を利用してBotを作る その①

スポンサーリンク

TwitterでBotを作る

今回はTwitterで一定時間ごとにツイートしたりするBotを作っていきたいと思います。Botを作るためにはTwitterが公開しているAPIを使うと簡単にできます。

TwitterのAPI管理サイト(https://apps.twitter.com/)にアクセスし、対象のアカウントでログインしましょう。ログインすると、Create New App(新しいアプリケーションを作成する)ボタンが表示されるのでクリックします。

必須情報の入力を求められますが、適当で問題ありません。(ただ2018年以降はアカウントに携帯電話番号を紐づけないとAPI鍵が作成できないみたいです。)そして下部のCreate your Twitter applicationボタンをクリックします。

アクセストークンの発行

初期では、Access TokenとAccess Token Secretは発行されていないので、同ページ下部のCreate my access tokenボタンをクリックして、生成する必要があります。つまり、Twitter API の OAuth 認証を行うには以下の4つの key が必要ということになります。

Consumer key
Consumer secret
Access token
Access token secret

スポンサーリンク

TwitterのAPIを触るのに必須なライブラリ

今回使うのはrequestsrequests-oauthlibというライブラリーです。

requestはスクレイピングとかしている人にはお馴染みのAPI操作ライブラリで、requests-oauthlibはoauth認証を簡単にするためのライブラリです。

ツイートを投稿

from requests_oauthlib import OAuth1Session

CK = ‘XXXXXXXXXXXXXXXXXXXXXX’ # Consumer Key
CS = ‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’ # Consumer Secret
AT = ‘XXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’ # Access Token
AS = ‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’ # Accesss Token Secert

# ツイート投稿用のURL
url = “https://api.twitter.com/1.1/statuses/update.json”

# ツイート本文
params = {“status”: “Hello, World!”}

# OAuth認証で POST method で投稿
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.post(url, params = params)

# レスポンスを確認
if req.status_code == 200:
print (“OK”)
else:
print (“Error: %d” % req.status_code)

https://qiita.com/yubais/items/dd143fe608ccad8e9f85より引用

タイムラインの取得

# タイムライン取得用のURL
url = “https://api.twitter.com/1.1/statuses/home_timeline.json”

# とくにパラメータは無い
params = {}

# OAuth で GET
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.get(url, params = params)

if req.status_code == 200:
# レスポンスはJSON形式なので parse する
timeline = json.loads(req.text)
# 各ツイートの本文を表示
for tweet in timeline:
print(tweet[“text”])

else:
# エラーの場合
print (“Error: %d” % req.status_code)

あとはURLとparamsを書き換えればほぼ何でも出来るみたいです。提供されているAPIの一覧はこちら。(英語)→https://dev.twitter.com/docs/api/1.1

API制限

APIを使う場合はサーバーに負荷をかけ過ぎないようにアクセス頻度を制限されることがありTwitterの場合は15分に15回という設定になっているので注意しましょう。

ここから何ができるか

検索APIを使って特定キーワードのツイートを蓄積する
user_timeline で特定ユーザーのツイートを集めて並べて愉しむ
crontab で定期ツイート投稿してbotを作る

これらを駆使するとびよーんみたいな非公式クライアントアプリが作れたりします。

参考:https://qiita.com/yubais/items/dd143fe608ccad8e9f85

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. […]  暇人の研究室PythonでTwitter API を利用してBotを作る その①https://tkstock.site/2018/05/27/post-309/TwitterでBotを作る今回はTwitterで一定時間ごとにツイートしたりするBotを作っていきたいと思い […]