技術のメモ帳

気が向いたときに書いてます

[GAS]Spreadsheetで入力されたURLのPinterestのPin件数を出力する関数

SpreadSheetで指定したセルの文字列(URL)の、PinterestのPin件数を出力するGoogle Apps Scriptの関数です。

今回は返り値がJSONPのみのため、String型に変換してパースする処理が入っています。

function pinterestCount(url) {
  try {
    if (!urlValidator(url)) throw new Error('Invalid args');
    var response = UrlFetchApp.fetch('http://api.pinterest.com/v1/urls/count.json?url='+url);
    if (response.getResponseCode() !== 200) throw new Error('Not Found');
    var json  = String(response).replace(/^receiveCount\((.+)?\)$/, '$1'),
        stats = JSON.parse(json);
    return stats.count;
  } catch(ex) {
    return ex.toString();
  }
}

function urlValidator(str) {
  var regexp = /^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/;
  return (typeof str == 'string' && regexp.test(str));
}

動作確認

問題なく動作しました。

参考リンク

https://gist.github.com/jonathanmoore/2640302#gistcomment-310819