Created
May 20, 2022 02:27
-
-
Save tajuszk/733117429b36050e288319cf7e795e52 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
const CONSUMER_KEY = 'XXXXXXX'; | |
const CONSUMER_SECRET = 'XXXXXXXXXXXX'; | |
const client = TwitterClient2.getInstance(CONSUMER_KEY, CONSUMER_SECRET) | |
/** | |
* メイン処理 [全フォロー取得する方法] | |
*/ | |
function main() { | |
// ① Twitterの公式リファレンスを見ながらパラメータを確認する | |
// https://developer.twitter.com/en/docs/twitter-api/users/follows/api-reference/get-users-id-following | |
// ② params はこんな感じで設定する({}で囲われた書き方をJSON形式と言う) | |
// ※設定自体は適当なので適宜カスタマイズしてください | |
const params = { | |
'expansions': 'pinned_tweet_id', // 固定ツイートのIDを取得 | |
'max_results': 1000, // 1度に取得する人数(指定すると上書きされます) | |
'user.fields': 'protected,description' // 鍵かどうかと自己紹介を取得 | |
} | |
/** | |
* ② はこんな書き方でもOK | |
* const params = {} | |
* params['expansions'] = 'pinned_tweet_id'; | |
* params['max_results'] = 1000; | |
* params['user.fields'] = 'protected,description'; | |
* ︙ | |
*/ | |
let users = []; // ユーザー情報を入れる配列 | |
// ③ 全員分取得するまでループする | |
while (true) { | |
const result = client.getFollowUsers(params); // paramsを入れて実行 | |
users = users.concat(result.data); // データを合体させていく | |
// 1度に取り切れない場合は "meta" というデータの中に "next_token" が入ってくるので | |
// ①のリファレンスを参考に pagination_token に next_token を入れてループする | |
if (result.meta.next_token) { | |
params['pagination_token'] = result.meta.next_token; | |
} else { | |
break; // next_tokenがなかったら終了 | |
} | |
} | |
console.log(users.length); // フォロー者全員分取れてるか確認 | |
} | |
/** | |
* 認証実行 | |
*/ | |
function authorize () { | |
client.authorize(); | |
} | |
/** | |
* 認証を削除したい時はこれを実行する | |
*/ | |
function reset () { | |
client.reset() | |
} | |
/** | |
* Twitterの developer portal に登録するURLを取得する | |
*/ | |
function getCallbackUrl () { | |
client.getCallbackUrl(); | |
} | |
/** | |
* authorizeでTwitterでの認証後に実行される処理 | |
* ※手動で実行はしません | |
*/ | |
function authCallback (request) { | |
return client.authCallback(request) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment