こんにちは。今回は【Twitter API v2】で新たに追加された機能の中の特定ユーザーの固定されたツイートを取得する方法をご紹介します。この記事では【Twitter API v2】のエンドポイントを使用しますので、まだ移行されていない方はこちらの記事を参考にして【Twitter API v2】へ移行してください。
(関連記事)Twitter API v2へ移行する手順
コード
では、いつものようにコードから見ていきましょう?下記のコードに使用する”コンシューマキー””コンシューマシークレット””アクセストークン””アクセスシークレット”を入れれば指定したユーザーの固定ツイートの投稿IDを取得できます。
import json from requests_oauthlib import OAuth1Session twitter = OAuth1Session("コンシューマキーを入力", "コンシューマシークレットを入力", "アクセストークンを入力", "アクセスシークレットを入力") endpoint = 'https://api.twitter.com/2/users?ids=1181359347806306304' params = {'expansions':'pinned_tweet_id'}#パラメータを指定 res = twitter.get(endpoint, params = params)#リクエストを送信 dic = json.loads(res.text)#レスポンスを辞書に変換 print(dic['data'][0]['pinned_tweet_id']) print(dic['includes']['tweets'][0]['text']) print(dic)
解説
今回はいつも使用している”tweepy”は使用できないので(tweepyがTwitter API v2に対応してない為)”requests_oauthlib”を使用します。インストールされてない場合は予めインストールしてください。
jsonもインポートしていますが、こちらは標準のモジュールですのでインストールは必要ありません。
pip install requests requests_oauthlib
1.2行目はモジュールをインポートしています。
3行目でご自身の”コンシューマキー”, “コンシューマシークレット”, “アクセストークン”, “アクセスシークレット”をそれぞれ入力して下さい。
6行目でエンドポイントと固定ツイートを取得したユーザーのIDをいれます。※今回は弊社のツイッターアカウントのIDを入れています。
7行目でパラメータを指定しています。今回は固定ツイートを取得したいので’expansions’:’pinned_tweet_id’と入れています。
その他のパラメータはGET /2/users | Docs | Twitterに詳しく記載されています。
9行目でリクエストを送信しています。
10行目はレスポンスを辞書に変換しています。
11行目で固定ツイートの投稿IDを出力しています。
12行目は固定ツイートの内容を出力しています。
13行目はレスポンス全体を出力しています。
複数のユーザーを指定する場合
取得したいユーザーが複数いる場合は下記のようなコードになります。
endpoint = 'https://api.twitter.com/2/users?ids=1181359347806306304,2人目のユーザーIDを入力,3人目のユーザーIDを入力' params = {'expansions':'pinned_tweet_id'} res = twitter.get(endpoint, params = params) dic = json.loads(res.text) num = 0 while num < len(dic['data']): try: print(dic['data'][num]['pinned_tweet_id']) print(dic['includes']['tweets'][num]['text']) print("-----------------") except: pass num = num + 1
このように”endpoint”にユーザーを「,」区切りで追加していけば最大100名までのユーザーを取得可能です。また、複数の場合はレスポンス値を繰り返し処理をして取得していきます。8行目に”num”に”0”を代入しカウントをしながら必要な値を出力しています。また、9行目では”len(dic[‘data’])”で辞書の要素数(検索したユーザー数)だけ繰り返しが行われるようにしています。10行の”try”は指定したユーザーが固定ツイートをしていない場合エラーになってしまうので、その場合例外処理をしています。今回の場合は”except:”で”pass”すなわち無視するようにしています。
まとめ
いかがでしたでしょうか?今回は”Twitter API v2”で新たに追加された機能の”固定されたツイート”を取得してみました。固定ツイートはユーザーが一番アピールしたいツイートですそれを解析することで自身のツイッターの運用も幅が広がりそうです。是非試してください・
業務支援ツールの製作を致します
株式会社FROMATIONではお客様の用途に合わせたオリジナルの業務支援(自動化)ツールを製作しております。
【毎日の10分を1秒に】
をコンセプトに、お客様の用途に特化したピンポイントな自動化ツールをご提供致します。「大手のRPAソフトを導入するまでもない日常ちょっとした手間」「毎日のルーチンワーク」など、簡単なツールで驚くほど業務が改善する場合もあります。
【毎日こんな作業で困ってるんだけど】
【こんなツール作れないかな】
など企業様も個人様もお気軽にお問い合わせください。
出来ることの一例
- webからのデータ収集
- Excelと連携したデータ処理
- メールの受信と自動返信
- データの自動アップロード
- 画像や音声データの編集・変換処
- 各種SNSの自動処理
上記以外にも出来ることは多数ありますので、お気軽にお問合せ下さい。