Google Cloud ConsoleのOAuthについて
目次
OAuth 2.0 って何?
OAuth 2.0(オース)は、「アプリがGoogleのサービスにアクセスする許可をもらう仕組み」です!
比喩で言うと: ホテルのルームキーのようなもの。
❌ マスターキー(パスワード)を渡さない
✅ 特定の部屋だけ開けられる鍵(OAuth)を渡す
✅ 期限付き
✅ いつでも取り消せる
安全にGoogleサービスを使える仕組み! 🔐
Google Cloud Console で使えるサービス
カテゴリー別に紹介:
1️⃣ データ保存・管理系
Google Drive API
- ファイルのアップロード・ダウンロード
- フォルダ作成
- ファイル検索
- 共有設定
ユーザーのGoogleアカウントに保存
容量はユーザー持ち(アプリ開発者の負担なし)
自動同期
Google Sheets API
- スプレッドシート作成
- データ読み書き
- セル編集
- グラフ作成
Excelのような表計算
複数人で共有・編集
グラフやピボットテーブル
2️⃣ コミュニケーション系
Gmail API
- メール送信
- メール検索
- メール既読/未読
- ラベル管理
ユーザーのGmailアカウントから送信されます!
Google Contacts API
- 連絡先の取得
- 連絡先の追加
- グループ管理
3️⃣ 認証・ユーザー情報系
Google Sign-In (OAuth)
- Googleアカウントでログイン
- ユーザー情報取得(名前、メールアドレス、プロフィール画像)
People API
- ユーザーの詳細プロフィール
- 誕生日、住所、電話番号などプロフィール画像)
Google Sign-In (OAuth)
- Googleアカウントでログイン
- ユーザー情報取得(名前、メールアドレス、プロフィール画像)
People API
- ユーザーの詳細プロフィール
- 誕生日、住所、電話番号などプロフィール画像)
4️⃣ マップ・位置情報系
Google Maps API
- 地図表示
- ルート検索
- 住所 ↔ 緯度経度 変換
- 近くの場所検索
5️⃣ クラウドストレージ系
Cloud Firestore
- NoSQLデータベース
- リアルタイム同期
- オフライン対応
複数端末で同期
バックアップ不要
スケーラブル
Cloud Storage
- ファイル保存(画像、動画、PDFなど)
- 大容量対応
- CDN配信
5️⃣ その他便利なAPI
YouTube Data API
Cloud Firestore
- 動画検索
- 再生リスト取得
- チャンネル情報
Google Photos API
- アルバム作成
- 写真アップロード
- 写真検索
Google Translate API
- 自動翻訳
- 言語検出
💰 料金について
| Google Calendar | 無料 |
| Google Drive | 15GB まで無料 |
| Gmail | 無料 |
| Google Sheets | 無料 |
| Cloud Firestore | 1日 50,000 読み取り無料 |
| Google Maps | $200/月 まで無料 |
設定方法
- Google Cloud Console にアクセス
https://console.cloud.google.com - プロジェクトを選択(既にあるはず)
- 「APIとサービス」→「ライブラリ」
- 使いたいAPIを検索して有効化
例: “Google Drive API” を検索 → 有効化
- 認証情報を設定
- OAuth 2.0 クライアントID
- 同じ認証情報で複数のAPIが使える!
- スコープを追加
⚠️ 注意点
権限は最小限に
// ❌ 全部のスコープを要求
scopes: [
'https://www.googleapis.com/auth/drive', // Drive全体(危険)
'https://mail.google.com/', // Gmail全体(危険)
]
// ✅ 必要な分だけ
scopes: [
'https://www.googleapis.com/auth/drive.file', // アプリが作ったファイルのみ
'https://www.googleapis.com/auth/gmail.send', // 送信のみ
]
ユーザーに説明する
// 権限リクエスト前に説明を表示
showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text('Googleカレンダーへのアクセス'),
content: Text(
'スケジュールをGoogleカレンダーに'
'自動登録するため、カレンダーへのアクセスを許可してください。',
),
actions: [
TextButton(
onPressed: () {
Navigator.pop(context);
requestGoogleSignIn(); // 許可リクエスト
},
child: Text('許可する'),
),
],
),
);
エラーハンドリング
try {
final user = await googleSignIn.signIn();
if (user == null) {
// ユーザーがキャンセル
print('ログインがキャンセルされました');
return;
}
// 成功
print('ログイン成功: ${user.displayName}');
} catch (e) {
// エラー
print('エラー: $e');
showErrorDialog('ログインに失敗しました');
}
まとめ: できること一覧
| カテゴリ | API | できること |
|---|---|---|
| 保存 | Drive | ファイル保存・共有 |
| 保存 | Sheets | 表計算・データ共有 |
| 保存 | Firestore | データベース・同期 |
| 保存 | Storage | 大容量ファイル保存 |
| 通信 | Gmail | メール送信 |
| 通信 | Contacts | 連絡先管理 |
| スケジュール | Calendar | スケジュール管理 |
| 地図 | Maps | 地図・ルート検索 |
| メディア | Photos | 写真バックアップ |
| メディア | YouTube | 動画検索・再生 |
| 認証 | Sign-In | ログイン |
一言まとめ:
Google Cloud ConsoleではGoogleカレンダー、Drive、Gmail、Maps、Sheets(記録共有)やDrive(バックアップ)など、たくさんのAPIが使える!
基本的に無料で使える! 🌟✨
