【GAS入門】Twitterのフォロワーを自分と他人とを自動で比較するプログラムを作る

Python・GAS
ワタシ

ども、らーにゃです。今回はGASの活用についてまとめます。

身の回りのことをもっと自動化できないものか?

仕事でもプライベートでも忙しくなるほどに自動化の必要性・重要性は増していると思います。

例えばTwitterにおいても、下記のようなツールを使って一部自動化・合理化を図る人も多いのではないでしょうか。

■ご参考リンク(Social Dogとは)

ただ、このような自動化のソフトをお金出して使うのはもったいない…

『というより、自分自身で作れないものか?』

こんなことを考えたりすることもしばしばです。

しかし、その一方で

『自分はエンジニアじゃないし、そんな知識ないからなぁ…』

との想いもあります。

ただ、最近GAS(Google Apps Script)をダメもとでさわっていじってみると

『ど素人でもコピペさえできれば近いことできるじゃん!』

と思えてきたので

備忘録的に初心者でも使える小ネタをガンガン発信したいと思います。

自動化やGASのプログラミングに興味があるけど、どんなことなら出来るのか…と思っている初心者の方のご参考になれば幸いです。

今回の論点整理

今回のお題は自分のTwitterのフォロワーの履歴を見える化することです。

イメージとしては、上記に市販ソフトの例で挙げた、Social Dogのダッシュボードのような機能です。

まずは、これをお手製でダッシュボードを作ってみようというわけです。

ただ、そのままコピーしても面白みにかけるので、少しひとひねりします。

何かというと、他のアカウントの数値も参照して比較用の指標として組み込みます。

アウトプットは下記のようなものです。

ポイントは自分のフォロワー数だけでなく、比較用に意識したい他のアカウントをベンチマークして入れているという点になります。

今回はGASでスプレッドシートに数字をいれつつ、その結果をGoogle Data Portalに出可視化しています。

BIツールを使ってダッシュボード化することは上記のように簡単に出来てしまうので、

今回はGASで元データをスプレッドシートにアウトプットするところを中心にまとめます。

具体的には下記3点を記載します。

今回の論点
  • GASとは
  • Twitter参照プログラム
  • 自作プログラムへの拡張

順に触れていきます。

結論だけ知りたい場合は2のトコのみご参照くださいませ(-_-)

Google Apps Scriptの活用ポイント

GASの活用観点

GASとは何か

GASとはGoogle Apps Scriptの省略後で、Googleが開発・提供しているプログラミング言語です。

JavaScriptというWebブラウザ上で動作するプログラミング言語がベースになっています。

このJavaScriptは、Webサービスを作ろうと思ったときに絶対に避けては通れない、ポピュラーな言語であり、そのニーズは非常に高いです。

■ご参考リンク(java scriptの高まり)

この点、JavaScriptのニーズの高まりに反して、学習コストが低いこともGASのメリットです。

例えば下記の3点は個人的に魅力的な観点だと思います。

  • Googleアカウントがあればすぐ使える
  • 環境構築がいらない(サーバーで動く)
  • ネットにアクセス出来ればそれでOK!

そのため、プログラミングを何から手をつけるべきかということを考える私のようなど素人が最もコスパ良いです。

では実際に、どのような活用法があるのかを考えます。

GASの活用

GASの活用観点は大きく2点あると考えます。

  • Google Appsに連携したアプリを作る
  • 外部アプリと連携(API・バッチ処理等)したアプリを作る

この2点がまずはベースです。特に

「GoogleのだからどうせGoogleのしかできないでしょ」

と思うことなかれ、今回紹介するツイッターとの連携含め、例えばLINEでの自動のBot創りなど、幅は非常に広いです。

ただ、当然、Googleのツールの機能を拡張という点においては最強です。

たとえば以下のようなことです。

  • メールを定時に自動送信・返信
  • スプレッドシートでオリジナル関数を作成し実行する
  • 住所からGoogle MapのURLを作成してマッピングする

などなど、Google Appsは種類が多いので、その組み合わせを考えると無限大です。

そして個人的に一番のオススメポイントが”ウェブ上で自動更新プログラムが作れる”という点です。

正直、これの破壊力が半端ないです。昨今叫ばれる、RPA・業務自動化の文脈でかなりのことが出来るようになります。

■ご参考リンク(RPA業務自動化とは)

この点、今までかじっていたPythonなどよりも拡張性は劣るものの

サーバーでの自動実行と学習コストの低さを考えると格段に準備がしやすいです。

そのため、

『こんな自動化・効率化の仕組を作ってみたい!』

という初心者の人の最初の第一歩はGAS一択かなと思います。

ワタシ

初心者でも自動化のプログラムが組めるというのは夢がありますね。

Twitterのフォロー数を抽出する

今回は、上記を踏まえて、GASを利用してTwitterを参照したデータ抽出のプログラムを作成します。

尚、GASで抽出したデータはスプレッドシートへアウトプットしていきます。

イメージは下記です。

データを参照することが出来たら、あとは1日1回プログラムに実行させて下に追加させていきます。

上記のように毎日更新されるプログラムになれば、あとはBIツールで可視化すればそれっぽくできます。

ということで、これを実装していきます。

1. プログラムを作成する前の準備

まず簡単なやり方ですが、googleスプレッドシートを立ち上げます。

そして、コピペしたいスプレッドシートの1行目に「日付」や「フォロワー数」などタイトル行を入力します。

その後に下記の、ツールオプションの「スクリプトエディタ」を選択

ここまでしたらあとは該当コードを作成(コピペ)するだけです。

ツマ

慣れるまではコードを書くまでの流れでとまったりしちゃうよね

2. プログラムを創る(コピペする)

function()という関数がデフォルトで記載されていると思うので、そこにマルッと該当のコードを貼り付けます。

該当コードは下記にまとめます。基本的にコピペでOKです。

function TwitterFollowers() {
//スプレッドシートの入力指定
var sheet = SpreadsheetApp.getActiveSheet();
var today = Utilities.formatDate(new Date(), "JST","yyyy/MM/dd")
var lastRow = sheet.getLastRow()
var row = lastRow + 1;
 
//Twitter取得(自分用)
var result = getTwitterNumFollowersJson("ここに@以下のtwitterアカウントを入れる");
result.followers_count

//Twitter取得(ベンチマーク用)
var result2 = getTwitterNumFollowersJson("ここに@以下のtwitterアカウントを入れる");
result2.followers_count

//自分用の入力+差異の作成
sheet.getRange(row, 1).setValue(today);
sheet.getRange(row, 2).setValue(result.followers_count);
var difference = result.followers_count - sheet.getRange(lastRow,2).getValue() ;
sheet.getRange(row, 3).setValue(difference);

//ベンチマーク用の入力+差異の作成 
sheet.getRange(row, 4).setValue(result2.followers_count);
var difference2 = result2.followers_count - sheet.getRange(lastRow,4).getValue() ;
sheet.getRange(row, 5).setValue(difference2);
 

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;
}
 
function getNumFollowers(screenName) {
 
var result = getTwitterNumFollowersJson(screenName);
if (result) {
return result.followers_count;
} else {
return 0; // Not Found;
}
 
}

上記、一部(「ここに@以下のtwitterアカウントを入れる」の部分)だけ、自身のアカウントに差し替える必要があるのでそこだけ、手を加えてください。

不要かと思いますが、該当部分はTwitterにログインして入ってみれる上記の@以下の部分です。

ワタシ

意外とどこにあったかわからなくなることがあったりします。。

3. プログラムを実行する

上記を作成したら下記の保存マークを押した後「▷実行」マークをクリックしてみてください。

これでエラーがでなければ、スプレッドシートにアカウント数が記載されます。

ここまで出来たらほぼ完了です。あとはこれを毎日、起動するようにします。

今度は左側にある時計ボタンをクリックし、毎日更新される設定にうつります。

詳細は以下の通りです。

トリガーを作成というボタンを押した後

『時間主導型』、『日付ベースのタイマー』、『好きな時間帯』を選択します。

ここまで設定して完成です。これで毎日、プログラムが指定時間に実行ボタンを押してくれる設定になりました。

コピペすれば2,3分で終わる作業かと思います。

余談ですが、Twitterに関するGASのコードはオンライン上にオープンになっている情報が多いので、これらを拾って試行錯誤すると学びが深まります

ツマ

仮想のライバルを作って意識を高めるというのも面白いね

自作プログラムへ拡張する

基本的にTwitterのフォロー数のダッシュボード化は上記で出来るはずです。

一方で、それが出来た上で

「もっと本当はこういった拡張をしたいんだけどな…」

という想いが芽生えた場合は、上記の構成を理解した上で、自分なりにアレンジする必要があります。

私のようなプログラミング初心者の人は下記3点を検討すると拡張が簡単にできます。

1.GASの参考書を活用する

GASをかじり始めて、複数の書籍に目を通しはじめていますが、

やっていてこれが一番わかりやすく使いやすい!と思う参考書はズバリこれです。

冒頭あげたGASの基本的な構成や仕組の他、とても実践的な内容が記載されています。

Google Appsとの連携例なども幅広くでており、それを実践するだけでもやりたいことがある程度できる可能性が高いです。

あとは、これと他の解説サイトなどを利用していけば、拡張する観点は学べると思います。

更に、その上でココナラなどの外部の力を借りることが出来ると更に学習効果とやりたいことの実現に向けて相乗効果があります。

■ご参考リンク(ココナラ)

GASのプログラム作成でお願いなどもできるため、基本的なことを参考書で抑えつつ、作ってみたいコードを一度外注して作ってもらいそれを元に深めるなども効率が良いです。

ワタシ

良い人にあたるとその後もメッセージなどで軽い相談ができる場合もあります

2. 動画教材(Udemy)の活用

個人的に一番コスパが高くオススメしたいのがコレ。

何かというとUdemyを活用した動画学習です。

分からないところがある時に、必要なところを本で読むのではなく、動画で解説してもらう方が理解のしやすさが段違いです。

また、講師の評価もついており、個人的な所感ですが、基本的に4.0以上の評価のコンテンツであればハズレはない印象です。

当然GASの動画も多く、日本語講師の解説動画も多数あるので、安心です。

個人的にオススメしたいのは下記の講座。

これで基本的な利活用から応用部分までも網羅的にマスターできます。

>>Udemy:GASのおすすめ講座

色々とGASの講座動画があったのでつまみ食いしましたが、上記がわかりやすく、評価も高くて最初の第一歩にはオススメです。

何個の動画も見るのは時間もお金も勿体ないので、狙いを定めて買うのがオススメ。大幅ディスカウントされているときは特にねらい目です!

ツマ

割引はいつくるか分からないからタイミングは逃さないようにしないとね!

3. プログラミングスクールを利用する

そして、最後の手段ガコレです。

特に、『時間がない!早く学びきりたい!』という人にオススメしたいのがこれです。

>>Tech Academy : Google Apps Scriptコース

これは費用もかかりますが最も学習効率が高いです。

実際にTechAcademyは利用してみましたが、初心者を想定したカリキュラムが設定されており初心者でも安心です。

実は、このTechAcademyでも参考にする書籍は1で紹介した本が取り扱われています。

そのため、参考書を使ってみたが、自分でペースを作りにくい…という人には一番合うと思います。

個人的に、メンターに都度、相談をしながら学習リズムを作る事が一番のよいポイントです。

また、メンターによるかもしれませんが、私の場合は、カリキュラムに関連する内容であればカリキュラム外でも色々教えてもらえました。

その点、GASでやりたいことがある人は色々学べると思います。

>>Tech Academy : Google Apps Scriptコース

また、GASを取り扱っているスクールはまだまだ少なく希少性が高く、かつこの手のスクールの中ではかなり安い部類です。

※GASを扱うスクールがないため参考までに他言語で比較

特にキャンペーンなどをやっているときは、オマケがとても豪華だったりするので、参照してタイミングを逃さないようにしましょう!

ワタシ

私もオマケ狙いのキャンペーン狙いでコスパよく学べて大満足でした

まとめ

今回ポイントしてまとめてきたのは以下の3点です。

抑えたいポイント
  • GASとは
    ▷初心者が自動化・効率化のプログラムを目指すのに最適なGoogleの言語
  • Twitter参照プログラム
    ▷基本はコピペで少し自分でアレンジするなどして実装する
  • 自作プログラムへの拡張
    ▷動画やスクールなどを利用して自分にあったやり方で学んで自分で拡張する

以上です。

今回は一例を出しましたが、GASを扱うことが出来ると、効率化・自動化をさせることは無限大です。

そしてこのGASの何と言っても素晴らしいのが環境不要!そしてしかもタダ!ということです。

仕事でつかえる部分があるのは勿論のこと、プライベートでも利活用できるオトク技がいっぱいなため、非エンジニアの人でもぜひトライしてみてください!

特に、自分でトライして頑張ってみるぞ!という人はまずは、動画学習でもスクール活用でも、自分に合うアクションで進めていきましょう。

自身の今のスキルや状況に応じて、次のステップアップに向けた動きを付けて一緒に自動化・効率化の技術を上げていきましょう!(‘ω’)ノ

>>Udemy:GASのおすすめ講座

ご精読頂きありがとうございました!
m(_ _)m