昨日の続き
目次
- 目次
- 公式のTwitter TypeScript SDKを触ってみる
- 特定のツイートを取得するサンプル
- 指定したツイートをLikeしたアカウントの一覧を取得するサンプル
- 指定したツイートをリツイートしたアカウントの一覧を取得するサンプル
- 指定したユーザのツイート一覧を取得するサンプル
- 指定したユーザーがいいねしたツイート一覧を取得するサンプル
- 指定したユーザーがリツイートしたツイート一覧を取得するサンプル
- 指定したユーザーのフォロワー一覧を取得するサンプル
- 指定したユーザーのフォロー一覧を取得するサンプル
公式のTwitter TypeScript SDKを触ってみる
インストールは下記
yarn add twitter-api-sdk # or # npm install twitter-api-sdk
TypeScript SDKなのだけど、ひとまずJavaScript(Node.js - ESModule)で書いていく。
touch main.mjs
※なおこのSDKに関するドキュメントはぱっと見つけられなかったのでソースコードを読んで、調べています。 だいたいやりたいことは下記で定義されているソースコード内に定義されているので、こちらを直接見るのがオススメ。
特定のツイートを取得するサンプル
昨日のポスト内で取得している Bearer Token
を環境変数に格納して利用していく。
プログラムを実行する際は下記のように実施する。
BEARER_TOKEN=<Bearer Token> node main.mjs
まずは特定のツイートを取得するサンプル。
import { Client } from "twitter-api-sdk"; const client = new Client(process.env.BEARER_TOKEN); const tweetId = "ツイートごとに振られる固有のID(該当するツイートページのURLなどから分かる)"; const tweet = await client.tweets.findTweetById(tweetId); console.log(tweet);
指定したツイートをLikeしたアカウントの一覧を取得するサンプル
なお、paginationがあるエンドポイントでは、下記のようにforぶんを使って繰り返し取得できる。
import { Client } from "twitter-api-sdk"; const client = new Client(process.env.BEARER_TOKEN); const tweetId = "ツイートごとに振られる固有のID(該当するツイートページのURLなどから分かる)"; const users = client.users.tweetsIdLikingUsers(tweetId); for await (const page of users) { console.log(page.data); }
指定したツイートをリツイートしたアカウントの一覧を取得するサンプル
import { Client } from "twitter-api-sdk"; const client = new Client(process.env.BEARER_TOKEN); const tweetId = "ツイートごとに振られる固有のID(該当するツイートページのURLなどから分かる)"; const users = client.users.tweetsIdRetweetingUsers(tweetId); for await (const page of users) { console.log(page.data); }
指定したユーザのツイート一覧を取得するサンプル
GitHubのREADMEにあがっているやつだと分かりにくかったので、ユーザ名から逆引きして取得できるようにしています。
(そもそもuserIdの取得方法がよく分からなかったので、その作業もSDKを通じて行っている)
import { Client } from "twitter-api-sdk"; const client = new Client(process.env.BEARER_TOKEN); const userName = "<対象のユーザ名(@から始まるやつ)>"; const { data } = await client.users.findUserByUsername(userName); // data.idにuserIdが格納されている const tweets = client.tweets.usersIdTweets(data.id); for await (const page of tweets) { console.log(page.data); }
指定したユーザーがいいねしたツイート一覧を取得するサンプル
import { Client } from "twitter-api-sdk"; const client = new Client(process.env.BEARER_TOKEN); const userName = "<対象のユーザ名(@から始まるやつ)>"; const { data } = await client.users.findUserByUsername(userName); const tweets = client.tweets.usersIdLikedTweets(data.id); for await (const page of tweets) { console.log(page.data); }
指定したユーザーがリツイートしたツイート一覧を取得するサンプル
パッと見ソースコードから見つけられなかったが、内容的にないというのは考えにくい?後で再度探して見るのでTODO
指定したユーザーのフォロワー一覧を取得するサンプル
こちらも client.users.findUserByUsername
を用いて、ユーザ名から逆引きしてユーザIDを取得して利用。
import { Client } from "twitter-api-sdk"; const client = new Client(process.env.BEARER_TOKEN); const usernName = "<対象のユーザ名(@から始まるやつ)>"; const { data } = await client.users.findUserByUsername(usernName); const followers = client.users.usersIdFollowers(data.id); for await (const page of followers) { console.log(page.data); }
指定したユーザーのフォロー一覧を取得するサンプル
上のサンプルと似ているが、usersIdFollowing
を使えばフォロー中のアカウントを取得できる
import { Client } from "twitter-api-sdk"; const client = new Client(process.env.BEARER_TOKEN); const usernName = "<対象のユーザ名(@から始まるやつ>"; const { data } = await client.users.findUserByUsername(usernName); const followings = client.users.usersIdFollowing(data.id); for await (const page of followings) { console.log(page.data); }