Firebaseとスプレッドシートを繋ぐ

#やりたかった事
Firebaseを利用してLINE X WEBアプリのデータを一元管理する仕組みを使ったのですが、データをより扱いやすくする為に、スプレッドシートへ自動書き込みを行うというチャレンジ
iPassを利用して、ノンコードで実装！

[Firebaseを利用して、LINEで予約状況を照会](https://qiita.com/misa_m/items/54d3f4c9daf151d485ff)で受け取ったデータベースを利用します。

#Integromatとは
IFFFやzapiaのようにiPassサービスの一つ
zapiaのwebhookを利用しようと思ったら有料プラン限定のサービスだったので、無料でwebhookが利用できるサービスです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/9d2f39b1-6513-b10a-b59b-2a5ad3f49bb1.png)



#環境
・Integromat

#下準備
##事前にFirebaseを構築
・データベースの構築
・クライアントIDとシークレットを取得

これについては以下の記事で紹介しています。
[Firebaseを利用して、LINEで予約状況を照会](https://qiita.com/misa_m/items/54d3f4c9daf151d485ff)

##Integromatとfirebaseを接続
[Google Cloud Platform](https://console.cloud.google.com/?hl=ja)で認証キーを発行します。

###APIとサービス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/cc509c7a-0234-c6be-6ebd-34f766eeb215.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/c1e11eb3-6f9f-e199-a587-9a5572b10bbe.png)

###Google Cloud Firestore APIを検索、有効化
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/ba91a5ed-5564-062a-20ec-499ba2d6e3c8.png)

###OAuth同意画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/a6ef5ff1-93a5-0774-c762-bbee6f499530.png)

###外部を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/37f42e43-e1be-2e4f-4b6a-f4d9cd1ee755.png)

##アプリ名を入力
任意の名前を付けます。
後は赤い米印のついているメールアドレス入力欄の設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/616a56af-45bf-2273-e996-b74be68af746.png)

##認証済ドメイン
integromat.comを追加しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/d096b89c-c9b8-5ad5-806a-9e294fa3f7e9.png)


##スコープを追加
・https://www.googleapis.com/auth/datastore
・https://www.googleapis.com/auth/cloud-platform
上記２つが必要です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/e5363c63-ca26-2e3d-d294-2295327e7289.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/fcd3569e-16b7-15ef-1967-5cdcd5b32514.png)

##認証情報
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/ebbc8e2b-9315-64a2-0572-4561b82d5e2c.png)

必要な情報
アプリケーションタイプ	Web application
名前	Integromat(任意)
許可されたリダイレクトURI	
https://www.integromat.com/oauth/cb/google-custom

##クライアントIDとクライアントシークレット発行完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/c2c08c64-2b30-5efd-adad-9179fabea139.png)

##アプリを公開
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/cf3b2734-431b-aa64-b0e1-998721483c3b.png)


#レシピ
Integromatにログインをして作業を進めます。
##Scenariosを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/36cc6eac-1f93-49db-cf4f-cbf840f6981f.png)


##Create a new Scenarios
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/51fd2e70-7796-832d-29e4-ca64bbb0d51e.png)

Google Cloud Firestoreを選択　【continue】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/d9c22d15-b918-0027-9408-7757d8d197eb.png)


##List Documentsを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/d5ca7a4d-c5b6-52ad-468d-ac29e744d624.png)

##接続するアプリを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/0c408185-4729-88c2-6711-c17b7664e7d3.png)

##addをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/454bea4c-0ac9-b597-f37f-018d91e4046e.png)

##準備で取得したキーを入力
クライアントID
クライアントシークレット
２つを入力してします。そうすると以下の画面になるので、安全ではないページに移動をクリックして認証を進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/43eae613-0b7d-5a1a-af50-e671ecbed33c.png)

##接続完了
接続したいprojectを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/c47c3be1-966d-550b-c247-42f19fda0a92.png)

##スプレッドシートを繋ぎます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/39c568ee-2db7-9d2c-aee9-821b80a1af16.png)

行の追加を選択しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/4dd58544-deba-c739-0849-95f5ca4b46c5.png)

あらかじめ作成しておいたスプレッドシートを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/a089d3da-1df9-b3df-0267-48766edaab2a.png)

列に何の値を入れるか設定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/fbfc2db2-d438-1877-3c9e-b4f53705c403.png)

#run
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/1cb40855-befa-2821-7f6a-2ed3d4de6ddc.png)

#まとめ
ドキュメントに入っているフィールド値を取得したかったのに、ドキュメント一覧しか取得できませんでした。
Google Cloud Firesotreではなく、他にパーツがあるのかもしれません。

とはいえ、認証キーの発行が必要である事がわかりFirestoreに繋げる事が出来て良かったです。