Spaces:
Sleeping
Sleeping
| title: OBJ Drive Viewer | |
| emoji: 🧠 | |
| colorFrom: blue | |
| colorTo: gray | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # OBJ Drive Viewer | |
| Google Drive の固定フォルダから `.obj` ファイルを一覧表示し、選択したOBJを Three.js でブラウザ描画する最小実装です。 | |
| デフォルトのDriveフォルダID: | |
| ```txt | |
| 1xK0ZNYBpVeYBKca48xxKEFpGWy9bbRaw | |
| ``` | |
| ## セットアップ | |
| 1. Google Cloud Console で OAuth 2.0 Client ID を作成します。 | |
| - Application type: Web application | |
| - Authorized JavaScript origins: | |
| - `http://localhost:5173` | |
| - OAuth consent screen は社内向けの設定にしてください。 | |
| 2. Google Drive API を有効化します。 | |
| 3. `.env.example` を `.env` にコピーし、`VITE_GOOGLE_CLIENT_ID` を設定します。 | |
| ```bash | |
| cp .env.example .env | |
| ``` | |
| 4. 依存関係をインストールして起動します。 | |
| ```bash | |
| npm install | |
| npm run dev | |
| ``` | |
| ## 実装内容 | |
| - Google Identity Services によるID token取得 | |
| - Drive API の読み取り専用スコープ | |
| - Express APIでGoogle ID tokenを検証 | |
| - `baby-helmet.com` Workspaceユーザーだけ許可 | |
| - 固定フォルダID配下の `.obj` ファイル一覧取得 | |
| - 選択したOBJファイルの `alt=media` ダウンロード | |
| - Three.js `OBJLoader` による表示 | |
| - OrbitControls による回転・ズーム操作 | |
| ## 主な設定 | |
| `.env`: | |
| ```env | |
| VITE_GOOGLE_CLIENT_ID=your-google-oauth-client-id.apps.googleusercontent.com | |
| VITE_DRIVE_FOLDER_ID=1xK0ZNYBpVeYBKca48xxKEFpGWy9bbRaw | |
| GOOGLE_CLIENT_ID=your-google-oauth-client-id.apps.googleusercontent.com | |
| DRIVE_FOLDER_ID=1xK0ZNYBpVeYBKca48xxKEFpGWy9bbRaw | |
| ``` | |
| `VITE_DRIVE_FOLDER_ID` は未指定でも上記の固定フォルダIDを使います。 | |