どんな記事? Laravel …
Laravel 12 で Gmail API を使ってユーザー投稿登録通知を送るまでの流れ
今回は、Laravel 12 で作った「アーティストマップ(仮)」アプリに、登録時に管理者へ Gmail 通知を送る機能を追加しました。XAMPP 環境、Windows での手順です。 細かい部分は後に追記していきます。
1. Laravel プロジェクトの準備
composer create-project laravel/laravel soloartistmap "12.*"
PHP 8.2 / Composer 2.8 で動作確認済み Tailwind + Vite は設定済み(@vite(['resources/css/app.css’, 'resources/js/app.js’]) で読み込み)
2. アーティストモデルとマイグレーション
protected $fillable = [
'name', 'prefecture', 'genre', 'profile',
'youtube_link', 'soundcloud_link', 'twitter_link',
'is_approved'
];
public function scopeApproved($query) {
return $query->where('is_approved', true);
}
is_approved で承認済みかを管理 都道府県・ジャンルも選択式にして柔軟性を確保
3. Gmail API を使う準備
① Google Cloud プロジェクト作成
Google Cloud Console で新規プロジェクト作成
Gmail API を有効化
② OAuth 同意画面設定
ユーザー種類:外部
テストユーザーに自分の Gmail を登録
データアクセスで gmail.send スコープを追加
③ OAuth クライアント作成
「クライアント ID」と「クライアントシークレット」を取得
.env に追加:
GOOGLE_CLIENT_ID=取得したクライアントID GOOGLE_CLIENT_SECRET=取得したクライアントシークレット GOOGLE_REDIRECT_URI=http://127.0.0.1:8000/google/callback
4. Google API クライアントの導入
composer require google/apiclient:^2.18 composer dump-autoload -o
5. GmailService クラス作成
app/Services/GmailService.php にサービスクラスを作成:
namespace App\Services;
use Google\Client;
use Google\Service\Gmail;
use Google\Service\Gmail\Message;
class GmailService {
public function getClient() { /* OAuth 設定 */ }
public function sendMail($to, $subject, $body) { /* メール送信処理 */ }
}
Laravel のサービスとして依存注入可能 登録時に呼び出して通知可能
6. OAuth 認証
ブラウザで /google/auth にアクセス → Google アカウントでログインすると
認証完了!これで Gmail API で送信できます
7. アーティスト登録通知の実装
ArtistController@store で GmailService を呼び出してメール送信:
$gmailService->sendMail(
'管理者メール@gmail.com',
'新しいアーティスト登録',
"名前: {$artist->name}\n地域: {$artist->prefecture}"
);
これで登録と同時に管理者に通知が届く
まとめ
Gmail API を使えば アプリから安全にメール送信 可能
OAuth + テストユーザー設定で Gmail アカウントを保護
Composer の autoload 最適化や Windows 環境の vendor/ 削除がポイント




ディスカッション
コメント一覧
まだ、コメントがありません