概要
1. 初回ログイン
- ユーザーがアプリを初めて使用するとき、Googleアカウントでのサインインを促します。
- ユーザーがサインインすると、アクセストークンを取得します。
2. アクセストークンの保存
- 取得したアクセストークンを安全に保存します(例:SharedPreferences)。
- リフレッシュトークンも同様に保存し、アクセストークンが期限切れになった場合に新しいトークンを取得できるようにします。
3. APIリクエスト
- 保存したアクセストークンを使用して、Google My Business APIにリクエストを送信し、営業時間を更新します。
4. トークンの更新
- アクセストークンが期限切れの場合、リフレッシュトークンを使用して新しいアクセストークンを取得します。
構築手順
1. Google Cloudプロジェクトの準備
1. Google Cloudプロジェクトの作成
- Google Cloud Consoleにアクセスし、プロジェクトを作成します。
- プロジェクトIDをメモしておきます。
2. Google My Business APIを有効にする
- Google Cloud Consoleで、APIライブラリにアクセスします。
- 「Google My Business API」を検索して有効にします。
3. OAuth 2.0 認証情報の設定
- Google Cloud Consoleの「APIとサービス」 > 「認証情報」から、OAuth 2.0 クライアントIDを作成します。
- アプリケーションの種類として「Android」を選択し、必要な情報を入力します。
- クライアントIDとクライアントシークレットをメモしておきます。
2. Androidアプリの準備
1. プロジェクトに必要なライブラリを追加
- Google Sign-Inのライブラリを追加します。
- Retrofitを使用してAPIリクエストを行います。
dependencies {
implementation 'com.google.android.gms:play-services-auth:19.0.0'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
}2. Google Sign-Inの設定
- Googleアカウントでのサインインを設定します。
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestScopes(new Scope("https://www.googleapis.com/auth/business.manage"))
.build();
GoogleSignInClient googleSignInClient = GoogleSignIn.getClient(this, gso);
Intent signInIntent = googleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);3. サインイン結果の処理
- サインイン結果を受け取り、アクセストークンを取得します。
4. 営業時間の更新
- 取得したアクセストークンを使用して、Google My Business APIにリクエストを送信し、営業時間を更新します。
アクセストークンの保存とリフレッシュトークンの処理
1. アクセストークンの保存
- 取得したアクセストークンをSharedPreferencesに保存します。
2. リフレッシュトークンの保存
- 取得したリフレッシュトークンをSharedPreferencesに保存します。
3. トークンの更新
- リフレッシュトークンを使用して新しいアクセストークンを取得します。
注意点
- アクセストークンとリフレッシュトークンの保存場所は、セキュリティに十分配慮してください。SharedPreferencesはシンプルですが、より安全な方法(例えばEncryptedSharedPreferences)を検討することも重要です。
- ユーザーのプライバシーを尊重し、適切な通知と同意を得るようにしてください。
この方法で、ユーザーが初回にGoogleアカウントでログインした後、アプリを使用してGoogleビジネスプロフィールの営業時間を更新することができます。