フリーランスエンジニアのよねざわ(@satosiyonezawa)です。
Node-REDでGoogleカレンダー連携をしている情報があまりなかったので
今回は enebular を使って
Googleカレンダーの予定時間になったら
enebularのフロー(処理)を開始するということをやってみます。
準備
- enebularの導入はこちら
- Introduction(公式)
- ↑から無料でアカウントを作ってHelloWorldの実行まですぐにできます
- 連携したいカレンダーのGoogleアカウントにログインしてください
Googleノードをインストール
Googleカレンダーと連携できるノードをインストールします
-
node-red-node-googleノード をインストール
-
以下の3つの項目が出てきました。次の章で詳しく解説します。
GCPのプロジェクトを作成
enebularとGoogleカレンダーを連携するために
Google側でリダイレクトURIの設定と
クライアントIDとシークレットキーの発行が必要になります。
- Googleの開発者コンソールにアクセスしましょう
- はじめてGCPを使うアカウントは以下の画面が出てくると思うのでチェックをして 同意して続行 を押します
プロジェクト名に任意の名前を入力
任意の場所を指定
Google+とGoogleカレンダーのAPIを有効にする
- Google+ API をクリック
- 有効にする ボタンをクリック
認証情報を作成
- GoogleAPIsのダッシュボードから 認証情報 をクリック
- 認証情報を作成 をクリック
-
承認済みドメイン にURIのドメインを入力→Enter→保存ボタンをクリック
-
認証情報を設定します
- アプリケーションの種類
- ウェブアプリケーション
- 名前
- 任意の名前
- 承認済みの JavaScript生成元
- 空欄
- 承認済みのリダイレクト URI
- ノード側の赤文字のURIをコピペ(https://からcallbackまで全て)
- 作成ボタンを押す
- アプリケーションの種類
このアプリは確認されていません という画面が出てきますが以下を実行します。
- 詳細ボタン
許可→チェック→許可
Authorised - you can close this window and return to Node-RED と表示されれば連携成功
2020年1月2日追記
現在はここで失敗してしまいます。記事公開時は上記メッセージが出ていたのですが、連携できないとの指摘があり再現しました。
エラーメッセージ「auth worked but profile fetching failed」
GoogleAPI側の問題だと思いますが解決した方は教えていただければ幸いです。
↑2020年9月16日現在、問題無しとの報告いただきました!
カレンダーを作成して連携確認
-
カレンダーの情報も取得しています。詳しくはノードの公式ページを参照
まとめ
enebularとGoogleカレンダー連携をさせることができました。
enebular側の作業はわずかでGoogle側の設定がほとんどでしたね。
- カレンダーの情報も取得できるのでカレンダードリブンのシステム連携ができそう
- カレンダーAPIの他にもGoogle+APIの許可が必要(ノードの仕様のため?)
- OAuth認証は認証画面を挟んでいる分、設定がちょっとめんどう