Google Apps Script(GAS)で Twitterのフォロー数を取得する方法

最近 Twitter側の内部デザインが変更になったようで、Google Apps Script(GAS) でユーザーの「フォロワー数」を取得できなくなりました。

諸悪の根源は、通常の Twitterの個人ページ (例: https://twitter.com/backy0175 ) を UrlFetchApp.fetchで読み込んで「フォロワー数」を取得している解説サイト/解説ページしかないことだと思います。

実は、以前からユーザーのフォロワー数を JSON形式で取得できるAPIが公開されていますので、このAPIを使えば内部デザインとは関係なしに「フォロワー数」を簡単に取得できますよ。

GASで Twitterのフォロー数を取得するサンプルを作りましたのでよかったらご活用ください。


/**
* Twitterから指定されたユーザーのデータを取得します
* @param {string} screenName - 取得したいユーザーの名前(ID)を指定する。
* @return {JSON} - 取得したデータを返す、ユーザーが存在しない場合などエラーになった場合は nullを返す。
*/
function getTwitterNumFollowersJson(screenName) {

var baseURL = "https://cdn.syndication.twimg.com/widgets/followbutton/info.json?screen_names=";

var response = UrlFetchApp.fetch(baseURL + screenName);

var result = null;

if (response.getResponseCode() == 200) {
var text = response.getContentText("utf-8");

if (text != "") {
var data = JSON.parse(text);
if (data.length == 1) {
result = data[0];
}
}
}
return result;
}


/**
* ユーザー名とフォロワー数をログに出力します。
* @param {string} screenName - 取得したいユーザーの名前(ID)を指定する。
*/
function printNumFollowers(screenName) {

var result = getTwitterNumFollowersJson(screenName);
if (result) {
Logger.log(screenName + " : followers = " + result.followers_count);
} else {
Logger.log(screenName + " : Not Found");
}

}


/**
* Twitterから指定されたユーザーのフォロワー数をを取得します
* @param {string} screenName - 取得したいユーザーの名前(ID)を指定する。
* @return {JSON} - 取得したフォロワーを返す、ユーザーが存在しない場合などエラーになった場合は 0を返す。
*/
function getNumFollowers(screenName) {

var result = getTwitterNumFollowersJson(screenName);
if (result) {
return result.followers_count;
} else {
return 0; // Not Found;
}

}


/**
* デバッグ用
*/
function test() {

printNumFollowers("backy0175");
printNumFollowers("xxxxxxxxx");

Logger.log(getNumFollowers("backy0175"));
Logger.log(getNumFollowers("xxxxxxxxx"));
}




※ 画面デザインの関係でコードの右側が見切れてますが、すべて選択すると問題なくコピーできます。


参考:
July 28, 2014
"Getting Twitter Follower Count without Using API (Development) — Kaspars Dambis"
https://kaspars.net/blog/twitter-follower-count-without-api

この記事へのコメント

MK
2021年05月30日 19:15
フォロワー数は取得できるのですが、フォロー数を取得するいい方法はないでしょうか?
はるくん
2022年01月26日 01:47
質問させてください!
A列にTwitterのIDがあったとして、
B列に各IDのフォロワー数だけを表示させるにはどのようにすればよろしいでしょうか。
もしよろしければ教えていただけますと幸いです。
バッキー
2022年02月03日 16:16
普通の関数と同じように呼び出せますよ。

この記事へのトラックバック