参考

手順

1. アクセストークンとシークレットキーを取得する

Google Apps ScriptでTwitter botを作ってみるが圧倒的に詳しく解説されています。丸投げだと身もふたもないので、一応説明します。笑 https://developer.twitter.com/en/appsからcreate an appを選択。 enter image description here
enter image description here
enter image description here
画像引用: Google Apps ScriptでTwitter botを作ってみる

Callback URLs

https://script.google.com/macros/d/[GASのスクリプトID]/usercallbackとします。GASのScriptIDはGASエディタのプロパティから調べられます。

登録後

  • APIKey
  • APISecretKey

上記の二つの値を使用します。「Keys&Tokens」の「ConsumerKey」の欄にあります。

2. GASプロジェクトの作成とTweet用のライブラリを導入する

GASプロジェクトの作成方法は割愛します。作成後Twitter用のライブラリをインポートします。「リソース」→「ライブラリ」から以下のプロジェクトキーで追加できます。
1rgo8rXsxi1DxI_5Xgo_t3irTw1Y5cxl2mGSkbozKsSXf2E_KBBPC3xTF

3. Gカレンダーの一週間の予定を取得する

ほぼGASで複数のGoogleカレンダーの予定を1週間取得するの通り。for文を用いて一週間それぞれの日付と終日イベントのタイトルの二つを配列として取得し、eventsForWeekにappendしています(最終的には二次配列の形で保存されます)。ちなみにgetDateやgetMonthした値に数字を足して処理しているのは、javascriptのDate型の仕様のため。
参考: JavaScript の Date は罠が多すぎる

function getEventsForWeek() {
    var calender = CalendarApp.getDefaultCalendar;
    var dateNow = new Date();
    var date = new Date();
    var eventsForWeek = [];
    
    for (var j = 2; j < 9 ; j++ ){
        date.setDate(dateNow.getDate() + j);
        date.setMonth(dateNow.getMonth());
        var dateStr = (date.getMonth() + 1).toString() + "/" + date.getDate().toString()
        var events = calender.getEventsForDay(date);
        if (events.length > 0 && events.slice(0, 1)[0].isAllDayEvent()) {
            eventsForWeek.push([dateStr,events.slice(0, 1)[0].getTitle()])
        } else {
            eventsForWeek.push([dateStr,"空き"])//終日イベントが登録されていない時
        }
    }
    Logger.log(eventsForWeek);
}

4. Tweetさせる

ちなみにTwitterAPIを用いてできることは、ツイート以外にもそこそこあります。

認証

初回のみツイッタアカウントへの認証作業が必要です。それ以降は認証する必要はありません。以下のように記述し、authorizeメソッドを走らせたあと、CMD + Returnでログを確認します。urlが記述されているはずなので、そのURLにアクセスします。

var twitter = TwitterWebService.getInstance(
  "手順1で取得したAPIKey",
  "手順1で取得したAPISecretKey "
);

// 認証
function authorize() {
  twitter.authorize();
}

// 認証解除
function reset() {
  twitter.reset();
}

// 認証後のコールバック
function authCallback(request) {
  return twitter.authCallback(request);
}

ツイート

以下のように実装しました。tweetStrをツイートするようになっています。

function Tweet(tweetStr) {
  var service  = twitter.getService();
  var response = service.fetch("https://api.twitter.com/1.1/statuses/update.json", {
    method: "post",
    payload: { status: tweetStr }
  });
}

5. cron処理

cron的なことをさせる方法です。超簡単。 Image from Gyazo

こんな感じで選べます。 Image from Gyazo