GoogleChatで予約送信を実現する(実装編)

# はじめに
GoogleChatで予約送信を実現したいという記事の続きになります。
前回はGeminiさんにサンプルを頂戴したところまで。
今回は実装&検証まで行います。

# 実装
## Spreadsheetの作成
GeminiさんがSpreadsheetにエクスポートしてくれるそうなので、お願いしてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/dd406484-4669-4661-65b3-9f6eb714380b.png)

<br/>
で、エクスポートしてもらったのを開いてみると。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/4ade3c43-dcc9-a379-f35c-535fa6f28dac.png)
う、ううん？
何か思っていた内容と違いますね。
ファイル名もどうにかならないのか…

<br>

気を取り直して、spreadsheetを修正します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/cec83bd1-fc5e-dbf7-b1a9-6855074576a1.png)

んで、拡張機能からApps Scriptを開いて、サンプルソースを貼りつけます。
ざっくり見た感じ、日付変換は修正必要そうですが、他はそのまま行けそうな予感です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/5d5b53a2-2c12-e59f-e771-d80693799dfb.png)

<br>

試しにテスト用のスペース宛に送信してみましょう(チャットルームはマスクしています)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/5bf876c1-d7db-b270-b8b9-198e926f425c.png)

<br>

GAS画面で、sendMessage関数をデバッグ実行っと。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/3f3b62af-6b91-f218-4423-068f7e51b0f7.png)

<br>

権限の確認があるので、アカウントを選択。
その後、アカウントへのアクセスを許可(すみません、画像ありません)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/5903cf9e-42ca-3b62-c563-f304e27a5d12.png)

<br>

さっそく怒られました。
あー、Spreadsheetのシート名変更していませんでした。
シート名を修正して、もう一回！
<br>
今度はエラーにならず、ログを見ても正常終了しています。
けどチャットは来ていません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/6e37f1d9-84b9-3b18-0d59-167812297fe5.png)

<br>

デバッグで止めてみると、送信日時が合っていなさそうですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/1564b9d3-ab30-192d-f681-56f0bd4ee3c1.png)

<br>

Spreadsheetのタイムゾーンを確認します(メニューのファイル > 設定)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/d8ccef94-56c4-31da-6bdf-ea533fe47688.png)

<br>

GMT-8になっているので、tokyoに変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/b716145e-6aa4-8893-87e3-5764f00942f3.png)

<br>

次にGASの設定を確認し、こちらは問題なさそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/ec98a0ed-2291-230a-8316-3823d6fcb5a1.png)

<br>

これで再実行。
今度はよさげです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/198b6211-85f4-a5dd-eb28-29787c08beb2.png)

<br>

しかし、後続処理でエラーとなりました。
いつもの権限エラーっぽいですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/1ec60031-f8cb-c606-bbf3-b9df336f9d01.png)

<br>

追加していきましょう。
GASの設定から、「appsscript.json」マニュフェストファイルをエディタで表示する
にチェックを付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/9fc3e7a6-d4ac-8739-a871-2bae18cf78d8.png)

<br>
appsscript.jsonに権限(oauthScopes)を追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/2c17c05e-e8c9-78fc-ca44-4e9565ce1dd3.png)

<br>

再度デバッグすると、権限許可を聞かれるので、許可します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/f2cc01c1-f27c-de6b-6c3c-0238e1873299.png)

再度実行してみます。
ダメでした、権限だけじゃないですね。
ちょっと調べてみるとGoogleCloudでプロジェクト作って、CHAT APIを使える状態に
しないといけないっぽいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826192/86512309-87c3-d233-7498-4fc0ff2af86a.png)

# おわりに
サクッと作って終わるはずが、全然終わりませんでした。
次回は、GCPの設定を行ってまいります。