📨
招待が届きました
招待を確認しています...
📋 招待内容
確認しています…
LINE で登録して参加する
下のボタンを押すと、LINE の確認画面が開きます。
ボタンを押すと LINE の画面が開きます。「許可」を押すと登録が進みます。
ボタンを押すと Google の画面が開きます。会社のメールまたはご自身の Google で登録できます。
登録の前に、3つのお願い
下の3つすべてに確認のチェックを入れていただくと、登録が完了します。
個人情報の取り扱いについて、くわしく見る
3つすべてにチェックを入れると押せるようになります。
⚠️
お手数ですが、招待してくれた管理者に連絡し、招待リンクの再発行を依頼してください。
📧 招待・参加フロー
招待・参加フロー
新メンバーをワークスペースに迎えるための手順です。管理者(社長または人事担当) が実施します。
📋 目次
⚡ クイックアクション
よく使う操作へのショートカット
🔀 ケース別フローチャート
新規メンバーの種別によって 2 通りのフローを使い分けます。
A. Google Workspace でアカウント発行 推奨
前提
- 自社ドメイン (例:
example.co.jp) で Google Workspace 契約済み - 管理コンソール (admin.google.com) に社長・人事担当などの管理者がアクセスできる
管理者側の手順
-
管理コンソールで新規ユーザー追加
admin.google.com → ディレクトリ → ユーザー → 「新しいユーザーの追加」
名 / 姓 / 主メール (例:tanaka.m@example.co.jp) を入力。
部署・役職を「組織部門」に設定し、「メールでログイン情報を送信」を ON。 -
組織のカレンダー共有を ON (1 回設定すれば全員に適用)
管理コンソール → アプリ → Google Workspace → カレンダー → 共有設定
外部共有: OFF (組織内のみ)
内部共有: 「すべての予定の詳細を共有」 を選択
これで@example.co.jp同士は互いの予定の詳細が見える状態に。 -
当アプリの STAFF マスターに追加
app.jsのSTAFF配列に新規メンバーの情報を追加。
Phase 2 以降はemployeesテーブル(Supabase / Aurora)にINSERT。 -
本人にログイン URL を送信
Staff Manager: https://staff.example.co.jp/login.html 発行された example.co.jp アカウントでサインインしてください。
本人側のアクション
- 受信した招待メールから Google Workspace アカウントを有効化
- 初回パスワードを設定
- ブラウザで
https://staff.example.co.jp/login.htmlを開く - 「Google でサインイン」ボタンをクリック
example.co.jpアカウントを選択 → 自動でログイン完了
💡 Workspace の組織カレンダー共有が ON になっていれば、追加の共有設定は不要。CEO の管理ダッシュボードに自分のカレンダーが自動的に表示される。
B. 個人 Gmail で参加 業務委託向け
前提
- 業務委託契約者など、
@example.co.jpを発行しないケース - 個人 Gmail を使い続ける
管理者側の手順
-
本人にメールで以下を依頼
利用したい Gmail アドレスを教えてもらう。
そのカレンダーを CEO のメール宛に共有してもらう (詳細は本人側ステップ 2)。 -
当アプリの STAFF マスターに追加
app.jsの STAFF にemail: 'xxx@gmail.com'で追加。calendarIdも同じメアドで OK (Google カレンダーのデフォルト)。 -
管理者のカレンダーアプリで「他のカレンダーを追加」
calendar.google.com → 左メニュー「他のカレンダー」横の「+」 → 「カレンダーに登録」
共有してもらったメンバーのメアドを入力 → カレンダー一覧に追加される。
本人側のアクション
-
Gmail / Google アカウントを準備
既にお持ちのもので OK。
-
自分の Google カレンダーを共有
calendar.google.com を開く → 左メニュー「マイカレンダー」 → 自分のカレンダー → 三点リーダー → 「設定と共有」
「特定のユーザーまたはグループと共有」 → 「ユーザーを追加」
共有先: 管理者から案内された会社の管理用メールアドレス(社長・人事担当)
権限: 「予定の詳細をすべて閲覧できる」 を選択 → 「送信」 -
当アプリにログイン
https://staff.example.co.jp/login.htmlを開く → 「Google でサインイン」 → 自分の Gmail を選択 → ログイン完了。
⚠️ 個人 Gmail の場合は 本人による共有設定 が必須。これをスキップすると管理者ダッシュボードに「予定なし」と表示される。
📆 カレンダーID の確認方法 (上書きしたい場合)
通常はメールアドレス = カレンダーID で OK ですが、別途作成したサブカレンダー (例:「業務専用カレンダー」) を使いたい場合の手順。
- calendar.google.com → 左メニュー「マイカレンダー」 → 対象カレンダー → 「設定と共有」
- 下にスクロール → 「カレンダーの統合」 → 「カレンダーID」をコピー
例:
c_abc123def456@group.calendar.google.com - 当アプリの「Google カレンダー」タブ → 「カレンダーID (上書き)」に貼り付けて保存
🚪 ログアウト・退職フロー
メンバー退職時 (管理者側)
- Workspace 管理コンソールで該当ユーザーを停止 or 削除
- 当アプリの STAFF マスターから該当エントリを削除履歴を残すなら
archived: trueフラグ追加。 - 過去のタスクは別メンバーに振替Phase 2 以降は
UPDATE tasks SET assignee_emp_id = '<新担当者ID>' WHERE assignee_emp_id = '<退職者ID>'で再紐付け。
メンバーがログアウトする場合
- ヘッダー右上のユーザーピル横の「ログアウト」ボタン
- セッションがクリアされ、ログイン画面へ戻る
- Google Workspace 側のセッション (Gmail 等) には影響しない
🛠 トラブルシュート
| 症状 | 原因 | 対処 |
|---|---|---|
| 「登録メンバーではありません」と表示される | STAFF マスターにメアド未登録 | app.js STAFF 配列 / Phase 2 以降は employees テーブルにメンバー追加 |
| 管理者カレンダーに「予定なし」と出る | カレンダー共有設定漏れ | ケース B-2 の手順で本人が共有設定 |
| Google ボタンが表示されない | OAuth Client ID 未設定 | google-auth.js の GOOGLE_CLIENT_ID を本物に置き換え |
| ログイン後に「権限がありません」 | Workspace ユーザー作成直後の遅延 | 数分待ってから再ログイン |
| カレンダーが英語表示 | iframe の &hl=ja パラメータ抜け |
google-auth.js の buildEmbedURL を確認 (既に hl=ja 済) |
⚙️ OAuth Client ID 取得手順 (CTO/CEO 一回だけ実施)
- console.cloud.google.com にログイン
- プロジェクト作成:
Staff Manager -
Google Calendar API を有効化
「APIとサービス」 → 「ライブラリ」 →
Google Calendar APIを検索 → 「有効にする」 -
「APIとサービス」 → 「OAuth 同意画面」
User Type: 内部 (Workspace 推奨。承認不要、外部監査なし)
アプリ名:Staff Manager
サポートメール:admin@example.co.jpスコープを追加:
・.../auth/userinfo.email
・.../auth/userinfo.profile
・openid
・.../auth/calendar.readonly← これがカレンダー閲覧の権限 -
「APIとサービス」 → 「認証情報」 → 「+ 認証情報を作成」 → 「OAuth クライアントID」
種類: ウェブアプリケーション
名前:Staff Manager Web
承認済み JavaScript 生成元:
・開発時:http://127.0.0.1:4321
・本番:https://staff.example.co.jp -
発行された Client ID をコピー
google-auth.jsのGOOGLE_CLIENT_IDに貼り付け。
🗓 カレンダー閲覧の仕組み (個別共有設定が不要になる理由)
このアプリは Google Calendar API の calendar.readonly スコープ をログイン時に同時要求します。
各メンバーのログインフロー
- 「Google でサインイン (カレンダー閲覧権限込み)」をクリック
-
Google の同意画面が開く
Staff Manager がアクセスを要求しています: ✓ あなたのメールアドレス ✓ あなたの個人情報 ✓ Googleカレンダーで予定を表示する ← ここがポイント
- 「許可」を押すと、当アプリは access_token を取得
- 当アプリは個別の共有設定なしで、本人のカレンダーを直接 API 取得できる
管理者側 (CEO) が他メンバーのカレンダーを見る仕組み
CEO の access_token を使って https://www.googleapis.com/calendar/v3/calendars/{他メンバーのメアド}/events を叩く。これが成功するための条件:
| シナリオ | 必要な設定 | 推奨度 |
|---|---|---|
| ケース A. 組織カレンダー共有 ON (Workspace) | 管理コンソールでカレンダー共有を「予定の詳細」に設定 (1 回設定で全員に適用) | ⭐⭐⭐ ベスト |
| ケース B. 個別共有 | 各メンバーが calendar.google.com で「CEO のメアドに共有」設定 | ⭐⭐ 個人 Gmail 利用時 |
| ケース C. ドメイン全体委任 | サービスアカウント発行 + Workspace 管理者が API スコープ委任 (バックエンド要) | ⭐ Phase 2+ |
💡 当アプリでは ケース A で十分です。Workspace 管理者がカレンダー共有を ON にしておけば、CEO は何もせずに API で全員のカレンダーを取得できます。
組織カレンダー共有の設定 (人事担当・社長が一回だけ)
- admin.google.com にログイン
- アプリ → Google Workspace → カレンダー → 共有設定
- 「外部共有オプション」: 制限なし (or 組織内のみ)
- 「内部共有オプション」: すべての予定の詳細を共有 ← これが鍵
- 保存
→ これで
@example.co.jp メンバー同士は互いの予定の詳細を API で取得できる状態になる。担当: 管理者(社長 / 人事担当) / Date: