OAuth 2.0

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 Drive15GB まで無料
Gmail無料
Google Sheets無料
Cloud Firestore1日 50,000 読み取り無料
Google Maps$200/月 まで無料

設定方法

  1. Google Cloud Console にアクセス
    https://console.cloud.google.com
  2. プロジェクトを選択(既にあるはず)
  3. 「APIとサービス」→「ライブラリ」
  4. 使いたいAPIを検索して有効化

例: “Google Drive API” を検索 → 有効化

  1. 認証情報を設定
  • OAuth 2.0 クライアントID
  • 同じ認証情報で複数のAPIが使える!
  1. スコープを追加

⚠️ 注意点

権限は最小限に

// ❌ 全部のスコープを要求
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が使える!
基本的に無料で使える! 🌟✨

目次