【GAS】Twitter Botで毎日自動で発信するプログラムを作る

Python・GAS
ワタシ

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

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

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

例えば、ブロガーの人であればTwitterの運用もそれなりにちゃんとしないといけない…!と思い下記のような管理ツールを使い始める人も多いと思います。

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

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

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

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

しかし、その一方で

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

との想いもあります。

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

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

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

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

今回の論点整理

今回取り扱うのはTwitterの自動発信プログラムです。

Twitterのツイート管理・自動化ツールであるSocial Dogの機能で言うと「投稿予定・予約枠」の機能になります。

元々、発信の時間がある程度決まっているのであれば

予め予定していたツイートを入れ込んで予約しておくことができると何かと便利です。

そのため、今回は、Googleのスプレッドシートに発信したいツイートをあらかじめセットして

指定の時間になったらプログラムが自動でツイートを発信するプログラムを共有します。

具体的には下記の3点について触れていきます。

今回の論点
  • Twitter×GASで出来ること
  • 自動発信のプログラム
  • 自作プログラムへの拡張

順に触れていきます。

Google Apps Scriptの活用ポイント

Twitter × GASで出来ることとは

Twitter × GAS

TwitterはAPIが開発者向けにオープンになっており、やろうとすると色々なことが出来るようになっています。

具体的には下記のようなAPIが揃っており付随したことがプログラムを介して簡易的に行ったり自動的に行ったりできます。

  • キーワードを検索する
  • アカウントプロフィールを扱う
  • リアルタイムでツイートを扱う
  • DM機能を扱う
  • 広告機能と連携する

■ご参考リンク(Twitter APIで出来ること)

今回はこの中でもリアルタイムのツイートを扱うAPIを利用し、Botと言われることを実現していきます。

Botとは何か

自動化の文脈でBot Botとよく仕事をしていても話の中でも出てきますが、一体これは何でしょうか。

実はロボット(robot)の略でBotになります。

ググってみると以下のような記載があります。

■ご参考リンク(botとは)

つまり、プログラムを組んでロボットに自動的に処理をしてもらうことを行います。

例えば、ツイートでつぶやくためのリストと、そのリストからランダムでピックアップしてツイートするプログラムを作れば、自動的につぶやくbotの完成です。

また、上記をランダムプログラムを使わずにリストにセットした順に実行するプログラムにすれば、今回想定するような予約配信のbotになります。

今回やりたいことは予約配信になるため、後者になります。

では、具体的にどうやればいいのか次以降にまとめていきます。

基本的にはコピペで出来ると思います。

ワタシ

自分のデータを自分で分析するというのは面白いですね。

Twitter Botのプログラム

さて、下記に実際のプログラムのコードを記載します。

今回は下記のサイトで紹介されているコードを参考にさせていただいております。

■ご参考リンク(Twitter Botのライブラリを作成)

プログラムのコード

まずはGoogle Driveからスプレッドシートを作成し、下記のような形で1行目を記入します。

その後に「ツール」と「スクリプトエディタ」をクリックします。

この後に、下記のコードをパッと張り付けて必要箇所のみ変更します。

'use strict';

const consumerKey = '★ここにコンシューマーキーを記載'
const consumerSecret = '★ここに自身のコンシューマーシークレットキーを記載'

const client = TwitterClient.getInstance(consumerKey, consumerSecret)

/**
 * 実行後 『表示』→『ログ』でURLを確認してTwitterアプリに登録
 */
function getCallbackUrl() {
  Logger.log('以下のURLをTwitterアプリのCallbackURLに登録');
  Logger.log(client.getCallbackUrl());
}

/**
 * 実行後『表示』→『ログ』で表示されたURLに移動
 */
function authorize () {
  client.authorize()
}


/**
 * ※この処理では「シート1」から投稿内容を取得してツイートしてます
 */
function postTweet () {
  const message = TwitterClient.pickUpTweetInOrder('シート1');
  client.postTweet(message);
}


/**
 * 認証を削除したい時はこれを実行する
 */
function reset () {
  client.reset()
}


/**
 * authorizeでTwitterでの認証後に実行される処理
 */
function authCallback (request) {
  return client.authCallback(request)
}

上記をコピペしていただいた上で変更する点は下記の2点のみです。

修正する箇所

★にコンシューマーキーを入力する

★にコンシューマーシークレットキーを入力する

尚、Twitter APIの登録や設定などはググると死ぬほど出てきますので、ぜひ検索してみてください。

以前、私が登録した際は下記を参考にしました。

■ご参考リンク(Twitter APIの登録方法)

ここまで出来ればプログラム自体は完成です。

元のスプレッドシートの上から順番に「投稿内容」と記載された内容を実行すると発信がされ、

投稿回数というところに1が立っていきます。

そのため、投稿内容の下につぶやき内容をストックして定期的な発信設定をすればそれで完了です。

尚、具体的なプログラムの実行と定期的な実行については下記に記載します。

ワタシ

予備知識なくともコピペでいいので簡単にできちゃいます。

プログラムの実行

あとはこれを実際に動くか試して、良い感じであれば繰り返しをするのみです。

具体的には下記の保存マークを押した後「▷実行」マークをクリックしてみてください。

途中Googleのアカウントを確認する画面に推移しますが、ここは気にせず進めていきましょう。

「権限を確認」をクリックすると「このアプリは確認されていません」と警告が出てきてビビりますが問題ないです。

冷静に、左下の詳細をクリックして○○に移動をクリックしましょう。

この画面ではじめてプログラム利用の承認ができるので、許可をしておきましょう。

ここまで出来たらほぼ完了です。

これを修正すると下記のような形でスプレッドシートに記載がなされます。

これが確認出来れば成功です。

他の項目は下記のように設定ができるようです。

あとはこれを毎日、起動して、スプレッドシートの下に追加するプログラムにします。

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

詳細は以下の通りです。

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

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

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

コードの記載を含めコピペすれば3分くらいで終わる作業かと思います。

あとは、指定のスプレッドシートを参照してBIツールでビジュアル化すればダッシュボードの完成です。

BIツール(Google Data Portal)は下記でまとめています。

ツマ

定例的な作業などは全部こういうプログラムに置き換えて見える化したいね

まとめ

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

抑えたいポイント
  • Fitbit APIとは
    ▷活動量計の老舗が公開する自身の運動・睡眠データの参照の仕組
  • Fitbit API参照のプログラム
    ▷Fitibitのアプリをまずは創り、上記のコードをコピペすればOK

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

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

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

とにかく私のような初心者の人が手軽に試して面白い!と感じて飽きる前に習慣化できるように、今まで作ったコードは公開していくのでコピペして利用・参考にして下さい。

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

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

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