概要
この記事では、UiPath の『Gsuite アプリケーション スコープ』で「サービスアカウントキー」認証を使用してスプレッドシートを操作する方法を紹介します。
サービスアカウントキーとは
サービス アカウント キーは、個人のエンド ユーザーではなくアプリケーションに属している特別な種類の Google アカウントです。アプリケーションは、サービス アカウントに代わって Google API を呼び出すため、ユーザーは直接関与しません。
『Gsuite アプリケーション スコープ』で使用できる認証方式には以下の3種類がありますが、「サービスアカウントキー」を選択すると、ロボット実行時にGoogleの認証画面が表示されないメリットがあります。
-OAuth クライアント ID
-API キー
-サービス アカウント キー
1.使用するAPIを有効化する
①Google Cloud コンソールにサインインします。
②対象のプロジェクトを選択します。
※プロジェクトがない場合は新しく作成します。赤枠で囲っている部分をクリックすると表示される画面より、「新しいプロジェクト」をクリックすると作成できます。
③「APIとサービス」>「ライブラリ」をクリックします。
④今回はスプレッドシートの操作処理をするため、Google Workspaceカテゴリの「Google Sheets API」を有効化します。
※Google Calendar、Gmail等のAPIを使用したい場合、同じ方法で有効にしてください。
2.サービスアカウントキーを作成する
参考URL:
①Google Cloud コンソールを開きます。
②「APIとサービス」>「認証情報」>「認証情報を作成」>「サービスアカウント」をクリックします。
③「サービスアカウント名」・任意の「ロール」を指定し(今回は「オーナー」に設定しました)、「完了」をクリックします。
④「APIとサービス」>「認証情報」>「サービスアカウント」に表示される、作成したサービスアカウントをクリックします。
⑤「キー」>「鍵を追加」>「新しい鍵を作成」をクリックし、鍵を作成します。
キータイプを選択し、「作成」をクリックします。
※JSONとP12どちらのキータイプも使えますが、今回はJSONタイプにしました。
するとjsonファイルがPCにダウンロードされます。
3.サービスアカウントへドメイン全体の権限を付与する
①Google Workspace 管理コンソールにサインインします。
②「セキュリティ」>「アクセスとデータ管理」>「APIの制御」>「ドメイン全体の委任」>「ドメイン全体の委任を管理」をクリックします。
③「新しく追加」をクリックします。
④「クライアントID」・「OAuthスコープ」に以下の値を入力し「承認」をクリックします。
〇クライアントID:"2.サービスアカウントを作成する"手順で作成したサービスアカウントのIDです。
「APIとサービス」>「認証情報」>「サービスアカウント」画面より、対象サービスアカウントをクリックすると表示されるサービスアカウントの詳細画面の「一意のID」または、PCにダウンロードされたJSONファイルより確認できます。
〇OAuthスコープ:https://www.googleapis.com/auth/spreadsheets
※他のGoogleサービスのスコープは以下URLを参照ください。
4.GSuite アプリケーション スコープの設定をする
※今回はStudio v23.4.2, UiPath.GSuite.Activities v2.4.3を使用しました。
①『GSuite アプリケーション スコープ』>「プロパティ」に以下の設定をします。
・キーの種類:「JSON」
・ユーザーのメールアドレス:実行アカウントのメールアドレス
・ドメイン全体へのアクセス件あり:「オン」
・キーパス:ダウンロードされたJSONファイルのフルパス
・認証の種類:「ServiceAccountKey」
※注意
「認証スコープ」は設定不要です。"3.サービスアカウントへドメイン全体の権限を付与する"手順で承認したスコープ以外のスコープにチェックが入っているとエラーになりますので気をつけてください。
②『GSuite アプリケーション スコープ』のBodyに『範囲を読み込み』・『範囲を書き込み』を配置し、必要な情報を設定します。
③実行すると、『範囲を読み込み』で読み込んだ値が『範囲を書き込み』で書き込まれました。