Open7

【開発ノート】画像素材ストッカー開発

ぬぬぬぬ

開発目的

web制作で使用する画像素材をチームで保管・共有するため

ぬぬぬぬ

メモ

Laravel Sailで作成してプロジェクトをgithub経由でcloneしたらsailコマンドが使えなかった

原因
必要なパッケージをインストールしていないから
そのためのcomposerもインストールしていない

解決方法
下記のコマンドでcomposerをインストールして各種パッケージをインストールする

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    composer install
ぬぬぬぬ

開発

各種テーブルとモデル作成、リレーションシップ設定

ぬぬぬぬ

Googleドライブへの接続

  1. google cloude consoleでGoogle Drive APIを使えるように設定
    参考:
    https://qiita.com/doran/items/15b2c59adb410ddeeb8a

  2. パッケージのインストール

# 必要なパッケージのインストール
composer require google/apiclient
composer require google/cloud-storage
  1. 認証ファイルの配置
mkdir -p config/google
mv service-account.json config/google/service-account.json
mv oauth-credentials.json config/google/oauth-credentials.json
  1. gitignoreの設定
/config/google/*.json
!/config/google/.gitkeep
  1. サービスクラスの実装

  2. カスタム例外クラスの作成

  3. サービスプロバイダーの登録

php artisan make:provider GoogleServiceProvider
  1. 設定ファイルの更新(config/services.php)
return [
    // 他の設定...
    
    'google' => [
        'auth_type' => env('GOOGLE_DRIVE_AUTH_TYPE', 'service-account'),
        'folder_id' => env('GOOGLE_DRIVE_FOLDER_ID'),
        'credentials_path' => env('GOOGLE_DRIVE_CREDENTIALS_PATH', base_path('config/google/service-account.json')),
    ],
];
  1. 環境変数の設定
GOOGLE_DRIVE_FOLDER_ID=your-folder-id
GOOGLE_DRIVE_AUTH_TYPE=service-account

GOOGLE_DRIVE_FOLDER_IDはgoogle driveで作成したフォルダにアクセルしURLを確認する
例:
https://drive.google.com/drive/folders/1aB2cD3eF4gH5iJ6kL7mN8...
この1aB2cD3eF4gH5iJ6kL7mN8...部分がGOOGLE_DRIVE_FOLDER_ID

  1. コントローラーで処理を実装

  2. viewとrouteの設定

ぬぬぬぬ

Google Cloud Consoleでの設定手順

a. プロジェクトの作成:

Google Cloud Console にアクセス
新しいプロジェクトを作成

b. APIの有効化:

左メニューから「APIとサービス」→「ライブラリ」
検索で "Google Drive API" を探す
「有効にする」をクリック

c. サービスアカウントの作成:

左メニューから「APIとサービス」→「認証情報」
「認証情報を作成」→「サービスアカウント」を選択
必要事項を入力:

サービスアカウント名(例:my-app-drive-access)
説明(任意)

「作成」をクリック

d. キーの作成:

作成したサービスアカウントをクリック
「キー」タブを選択
「鍵を追加」→「新しい鍵を作成」
JSONを選択
キーがダウンロードされます

e. 権限の設定:

Google Driveで使用するフォルダを開く
フォルダを右クリック→「共有」
サービスアカウントのメールアドレスを追加

メールアドレスは [サービスアカウント名]@[プロジェクトID].iam.gserviceaccount.com
※Google Cloud Console で確認できる
Google Cloud Console にアクセス
左メニューから「IAM と管理」→「サービスアカウント」を選択
サービスアカウントの一覧が表示され、そこにメールアドレスが表示されている

編集者権限を付与