目次
就職活動などで よく、メールのやり取りで「面談候補日をいくつか教えて下さい」「この日に確定しました」という流れがある
(Google Calendar 上で) 面談先 A, B, C... ごとに、この「面談候補日」と「確定した面談日」を管理する
- 「この日は面談候補日だから、別の面談先には提示できない」
- 「面談候補日の中から面談日が確定したので、不要になった候補日群はかんたんに削除したい」
- 「面談日が確定して 候補日が無くなったので、別の面談候補日として使えるようになったのがわかった」
こういった作業を補助する
現バージョンではローカル環境で動くことを目的・ゴールとしている
面談候補日が作成できる
現在は固定で 3つの予定を立てられる
時間も固定で 14:00〜17:00 開始予定に設定している
Google Calendar 上でイベント作成するのと同様、「概要」「説明」欄を入力することができる
面談候補日を選ぶことで、メールの返信に使える「コピペ用文章」を生成する
当該文章欄をクリックするとコピペ用文章をコピーできる
eg.
1. n月m日 (月) 14:00〜17:00 に開始
2. n月m日 (月) 14:00〜17:00 に開始
3. n月m日 (月) 14:00〜17:00 に開始
面談候補日から面談日を確定する
確定することで...
- (複数確保していた) 候補日群を削除する
- 確定した面談日として新たに、Google Calendar 上にイベントを作成する
候補日を作成したときに入力していた情報は引き継がれる
アプリケーションとして利用するのに必要な初期化手順について説明する
大きく分けて次の流れになる
- Google Cloud でのセットアップ
- Rails 側でのセットアップ
とりあえず、ローカルで動けばいいので、コンソール ページ にアクセスし、次のように設定する
つぎの 4点を設定する
- 「プロジェクトの作成」
- 「有効な API とサービス」
- 「OAuth 同意画面」
- 「認証情報」
ページ上部のプロジェクト名をクリックし、「新しいプロジェクト」をクリックする
適当な名前をつける
(参考: 【初心者向け】Google Cloud Platformに新規プロジェクトを作成する)
本アプリケーションでは Google Calendar API を利用するので、それを有効化する
「API とサービスの有効化」から次のように設定する
- API ライブラリにアクセス
calendar
で検索- 「Google Calendar API」をクリック
- 「有効にする」をクリック
OAuth 同意画面 にアクセスし、同意画面を作成する
(URL は https://console.cloud.google.com/apis/credentials/consent?project=`[project name]` )
設定名 | 値 |
---|---|
公開ステータス | テスト |
ユーザの種類 (外部) | 内部 |
テストユーザ | [自分のメールアドレス] |
認証情報 にアクセスし、認証情報を作成する
(URL は https://console.cloud.google.com/apis/credentials?project=`[project name]` )
「認証情報を作成」から「OAuth クライアント ID」を選び、次のように設定する
設定名 | 値 |
---|---|
アプリケーションの種類 | ウェブ アプリケーション |
名前 | [任意の名前] |
承認済みの JavaScript 生成元 | http://localhost:3000 |
承認済みのリダイレクト URI | http://localhost:3000 , http://localhost:3000/auth/google_oauth2/callback |
クライアント ID の作成で、認証情報が得られる
「クライアント ID」, 「クライアント シークレット」の 2つは あとで使う ので、JSON ファイルのダウンロードや、テキストとして控えておく
Rails 側では次の 4点を設定する
- Bundler
- Node.js
- データベース
- Rails Credentials
Gemfile に定義している gem のインストール
bundle install
Node.js パッケージのインストール
yarn install
データベースの初期化
bundle exec rails db:create
bundle exec rails db:migrate
機密情報の追加
rails credentials:edit
ここで Google Cloud 設定の認証情報を格納する (「クライアント ID」「クライアントシークレット」)
google:
client_id: 'xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com'
client_secret: 'XXXXXX-X-XXXXXXXXXXXXXXXXXXXXXXXXXX'