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

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 1

なるほど(納得、参考になった、ヘー)

この記事へのコメント