LoginSignup
2
4

More than 1 year has passed since last update.

Python初心者がTwitterAPIを使ってつぶやいてみた。(2021年7月の情報)

Posted at

著者の実行環境

OSはWindows10、Pythonのバージョンは3.7.8となっています。VS CodeでPythonを実行しています。
初心者ではありますが、環境構築は済んでいるのでスキップさせていただきます。

はじめに

著者は初心者なので、なるべく正確な情報を記述するように心がけていますが、情報に誤りがあるかもしれません。あらかじめご了承ください。

コードを書く前に準備!

TwitterAPIへのアクセス権限の取得

アクセス権限を得るために、自分のTwitterアカウントをデベロッパーアカウントに昇格させましょう。
(Twitterアカウントにメールアドレスと電話番号を紐づける必要があります)
以下のサイトにアクセスします。
https://developer.twitter.com/en/apply-for-access
スクリーンショット (69).png
"Apply for a developer account"をクリックします。

スクリーンショット (72).png
はじめに、"Professional"(プロ) "Hobbyist"(趣味でやる人) "Academic"(勉強のために使う人)の3択があるので、自分に合うものを選んでください。
次に、"Making a bot"(ボットを作る) "Building tools for Twitter users"(ツイッターユーザーのためのツールを作る) "Exploring the API"(APIを探求する)の3択があるので、自分の目的に近いものを選んでください。

スクリーンショット (73).png
上から順に説明します。
"What would you like us to call you?" → 呼び名を入力してください。
"What country do you live in?" → 居住国を入力してください。
"What's your current coding skill level?" → 現段階のプログラミングレベルを入力してください。
未経験なら"No experience" ちょっとなら"Some experience" ゴリゴリあるなら"Highly experienced" を選びましょう。

スクリーンショット (74).png
ここからが一番大変なのですが、がんばりましょう。
"How will use the Twitter API or Twitter Data?"(TwitterのAPIとデータをどのように使いますか?)
という質問に対する返答を200字以上の英語で回答しましょう。
I would like to ~ を使って大雑把なAPIの利用目的を記述し、For exampleを使って具体的な利用方法を記述すると、頑張れば200字は埋められます。(2行くらいで200字になります)

スクリーンショット (75).png
Twitterのデータも分析してみたいという人はYesにし、どのようにTwitterのデータを活用するか100字以上で記述しましょう。

スクリーンショット (76).png
ツイート機能を利用したいので、Yesにします。どのようにツイート、リツイート、ライク、フォロー、DM機能を利用するか、100字以上の英語で書きましょう。

スクリーンショット (77).png
集計したデータをTwitter以外の場で開示したい場合はYesにしましょう。どこで、どのように開示するか記述しましょう。

スクリーンショット (78).png
TwitterAPIを用いて作ったプログラムを政府機関(教育機関は除く)も利用可能にする場合、Yesにします。(ほとんどの人の場合該当しません)
(スクショの画像ではYesになっていますが、スクショ後Noにして申請しました)

スクリーンショット (80).png
規約書を読み、チェックボックスをクリックして同意します。

スクリーンショット (81).png
このような画面が表示され、認証メールが送られますので、メールボックスをチェックしましょう。

スクリーンショット (82).png
このようなメールが届いているはずです。Confirm your emailをクリックしましょう。これで
開発者アカウントに昇格完了です!以下のサイトにアクセスしましょう。
https://developer.twitter.com/en/portal/dashboard

スクリーンショット (83).png
Create Projectをクリックします。

スクリーンショット (84).png
プロジェクト名を決めて入力しましょう。(何でもいい)

スクリーンショット (86).png
使う目的を選択します。今回は"Exporing the API"でいきます。

スクリーンショット (87).png
プロジェクトの概要を記述しましょう。著者は"Tweet something using Twitter API."にしました。

スクリーンショット (88).png
アプリ名を決めて入力しましょう。

スクリーンショット (89).png
API Key、API Secret Key、Bearer Tokenを取得できました。これらの情報を見れるのは最初で最後なので、Windowsのメモ帳にメモするのをお勧めします。(情報をなくしたとしても、再生成はできる)(メモ内容は見られないように管理する)

スクリーンショット (90).png
アプリの権限を変更してツイッターのデータに書き込んだり、DMできるようにしましょう。"Edit"をクリックします。

スクリーンショット (91).png
Read+Write+Direct Messagesを選択して、Saveをクリックします。

スクリーンショット (92).png
Keys and tokensの項目にジャンプしましょう。

スクリーンショット (93).png
Access Token and SecretをGenerateしましょう。

スクリーンショット (94).png
これらもメモ帳にコピペしておきます。
これでTwitter側での操作は完了です。

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

スクリーンショット (95).png
著者はコマンドプロントにてインストールをしました。(Anacondaを利用している場合のインストール方法はわからないのでご了承ください。)

コードを書く!

import tweepy

API_KEY = "******************"
API_SECRET = "*****************"
ACCESS_TOKEN = "******************"
ACCESS_TOKEN_SECRET = "*****************"

auth = tweepy.OAuthHandler(API_KEY, API_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

api = tweepy.API(auth)

api.update_status("テスト")

API Keyなどは先ほどメモしたものを入力すればオッケーです。
api.update_statusの引数がツイート内容となっています。

image_72192707.JPG
無事投稿できました!

tweets = api.search(q='"#python"', lang='ja', result_type='recent',count=5)

for tweet in tweets:
    print (tweet)

上のコードを実行するとツイート情報を取得できます。
q=検索キーワード、lang=言語、result_type=取得するツイートの種類、count=ツイートの取得数となっています。
result_typeにはpopular(人気のツイート)、recent(最新のツイート)、mixed(すべてのツイート)の3種類があるみたいです。

参考サイト

https://dividable.net/programming/python/python-twitter-api-get-followers-count
https://qiita.com/soma_sekimoto/items/6b9f32552f4ab50be452
https://syncer.jp/Web/API/Twitter/REST_API/GET/search/tweets/

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4