Google Apps Scriptで日曜日のタスクを自動化したお話

この記事は、[株式会社Y's アドベントカレンダー](https://qiita.com/advent-calendar/2017/ysinc) 9日目の記事になります。

<img src="https://lh3.googleusercontent.com/bUUEq18ccViESycbLkS1GMmjz4HaIqZIqZIJo1JgFk4H90diaiWWqT7IOyaI6rrcAGeiUfMurQ" width="100%">


#Google Apps Scriptとは

「Google Apps Script」は、Googleが提供している各種サービスで使用できるスクリプト言語です。

例えば、GmailやGoogleスプレッドシートなどで使用できます。
ちょうど、OutlookやExcelについているVBAと同じ位置づけになります。

#実際に使ってみる

まずは、Google Apps Scriptを使用できるようにしましょう！

Googleドライブを開いて、「新規」→「その他」→「アプリを追加」を選択します。

![gas01.png](https://qiita-image-store.s3.amazonaws.com/0/157683/a2fb83cf-1476-4f2c-da1f-1dcce75ad9a0.png)

検索キーワードに「Google Apps Script」と入力して検索すると、「Google Apps Script」のアプリが出てきます。
次に「＋　接続」と言うボタンを押します。

![gas02.png](https://qiita-image-store.s3.amazonaws.com/0/157683/8727107c-4c6e-67c5-264e-e56bb3486f6d.png)

これでGoogle Apps Scriptが使用できるようになりました。

![gas03.png](https://qiita-image-store.s3.amazonaws.com/0/157683/c47986dc-6beb-dd44-f406-dd1173328a28.png)

#Google Apps Scriptを作成する

それでは、新規で「Google Apps Script」を作成していきましょう。
「新規」→「その他」→「Google Apps Script」を選択します。

![gas04.png](https://qiita-image-store.s3.amazonaws.com/0/157683/2d8f16fb-9330-bd30-0eb4-ec6555f8f243.png)

新規のプロジェクトが作成されます。

![gas05.png](https://qiita-image-store.s3.amazonaws.com/0/157683/c4a87128-b0a3-39a2-d437-5b9742cc8833.png)

#chatwork APIの設定をする

それでは「chatwork API」を使用できるようにしましょう。
chatworkの右上にある、自分の名前から「API」を選択します。

![gas09.png](https://qiita-image-store.s3.amazonaws.com/0/157683/a9a15bbb-6d70-ee39-8cdf-0eb53ec983f9.png)

自分のパスワードを入力して、表示を押します。

![gas10.png](https://qiita-image-store.s3.amazonaws.com/0/157683/5615531a-2c55-fc9d-4505-08d27218edcd.png)

APIトークンが表示されるので、それを覚えておきます。

![gas11.png](https://qiita-image-store.s3.amazonaws.com/0/157683/3952fb0e-ee7c-6b92-fcbd-770aa47f0520.png)

#chatwork APIをGoogle Apps Scriptで使用する

次に名前を変更していきます。
「無題のプロジェクト」→「chatwork」
「コード.gs」→「sendMessage.gs」
「myFunction」→「sendMessage」

![gas06.png](https://qiita-image-store.s3.amazonaws.com/0/157683/f50672d6-e3b2-526e-928c-8839b0a3fa2b.png)

コードは以下の通りです。

```javascript
function sendMessage() { 
  var client = ChatWorkClient.factory({token: '自分のAPIトークン'});　//チャットワークAPI
  var mes = [];
  mes.push("[To:2320212][To:2544336][To:2550290][To:2550613][To:2594640][To:2614607][To:2626771][To:2632137] [To:2750924][To:2752463][To:2756530]")
  mes.push("お疲れさまです。");
  mes.push("本日は日曜日ですね～");
  mes.push("ということで、進行表の右側にある週報の記入をお願いいたします。");
  mes.push("日曜日までの研修の振り返りと、月曜日からの目標の記入してくださいな。");
  mes.push("");
  mes.push("よろしくお願いいたします。");
  client.sendMessage({
    room_id: 57747792, //研修生グループ
    body: mes.join("\n")
  });
}

```
#chatwork用のライブラリを追加する

次に「chatwork API用」のライブラリを追加します。
「リソース」→「ライブラリ」を選択します。

![gas07.png](https://qiita-image-store.s3.amazonaws.com/0/157683/a77ebae8-1c48-9a80-a07a-09d295fc7c23.png)

「ライブラリに追加」に「M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT」を入力し「追加」を押します。
「ChatWorkClient」というライブラリが表示されたら、バージョンを「18」に設定し「保存」を押します。

![gas08.png](https://qiita-image-store.s3.amazonaws.com/0/157683/cc92623a-4abf-15cc-e76c-52d907e41cf5.png)

それでは実行してみましょう。
ツールバーから「実行」をクリックします。

![gas13.png](https://qiita-image-store.s3.amazonaws.com/0/157683/23ab5ab7-3335-1a2f-4973-027458ffe596.png)


ちゃんと投稿されておりますね！

![gas12.png](https://qiita-image-store.s3.amazonaws.com/0/157683/c26006a9-60eb-51b9-46b3-17af840e7a12.png)


#タイマーを設定する

「chatwork API」で投稿できるようになったといっても、毎週日曜日にGoogleの画面を開いて、ポチポチ「実行」していくのは面倒ですよね。
そこで、「Google Apps Script」にはタイマー機能も用意されています。

ツールバーから「現在のプロジェクトのトリガー」をクリックします。

![gas14.png](https://qiita-image-store.s3.amazonaws.com/0/157683/d853ff44-c67c-fe58-af73-7541428f7272.png)

「トリガーが設定されていません。今すぐ追加するには、ここをクリックしてください。」のリンクをクリックします。

![gas15.png](https://qiita-image-store.s3.amazonaws.com/0/157683/fa0abdc8-0736-c347-4142-126bc13da8fa.png)

トリガーを以下の通りに設定し「保存」をクリックします。
実行：「sendMessage」
イベント：「時間主導型」「週タイマー」「毎週日曜日」「午後7時〜8時」

![gas16.png](https://qiita-image-store.s3.amazonaws.com/0/157683/fd485ed9-1330-6f66-678c-069596955e58.png)

これで完成です！
今までは、日曜日の午後に外出していると、そわそわしていたのですが、
今後はゆっくりと楽しめそうですね (^_^;

#まとめ

今回やってきたように「Google Apps Script」を活用することで、サーバーを借りずに、自動実行の機能が作れます。
例えば「ゴミ出しの日」を忘れないように「リマインド機能」も作れそうですね〜
夢が広がります！！

次は 10日目 @jsatof2380 さんの記事です。お楽しみに！