【UiPath】『Gsuite アプリケーション スコープ』で「サービスアカウントキー」を設定する際の必要手順

## 概要
この記事では、UiPath の『Gsuite アプリケーション スコープ』で「サービスアカウントキー」認証を使用してスプレッドシートを操作する方法を紹介します。
## サービスアカウントキーとは
サービス アカウント キーは、個人のエンド ユーザーではなくアプリケーションに属している特別な種類の Google アカウントです。アプリケーションは、サービス アカウントに代わって Google API を呼び出すため、ユーザーは直接関与しません。
『Gsuite アプリケーション スコープ』で使用できる認証方式には以下の3種類がありますが、「サービスアカウントキー」を選択すると、ロボット実行時にGoogleの認証画面が表示されないメリットがあります。
　-OAuth クライアント ID
　-API キー
　-サービス アカウント キー

 ## １．使用するAPIを有効化する
①Google Cloud コンソールにサインインします。

https://console.cloud.google.com/

②対象のプロジェクトを選択します。
※プロジェクトがない場合は新しく作成します。赤枠で囲っている部分をクリックすると表示される画面より、「新しいプロジェクト」をクリックすると作成できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/e7f8ed30-9c68-86f5-e423-21f012921ddc.png)

③「APIとサービス」>「ライブラリ」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/b0101200-11ed-070a-7c6c-a6e02ff74219.png)

④今回はスプレッドシートの操作処理をするため、Google Workspaceカテゴリの「Google Sheets API」を有効化します。
※Google Calendar、Gmail等のAPIを使用したい場合、同じ方法で有効にしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/ee3fee9c-d5cf-e49b-c979-34fc3199140f.png)

 ## ２．サービスアカウントキーを作成する
参考URL:

https://developers.google.com/admin-sdk/directory/v1/guides/delegation?hl=ja
 
 ①Google Cloud コンソールを開きます。

②「APIとサービス」>「認証情報」>「認証情報を作成」>「サービスアカウント」をクリックします。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/11682950-aa17-602d-806f-fababb732966.png)

③「サービスアカウント名」・任意の「ロール」を指定し（今回は「オーナー」に設定しました）、「完了」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/004d1f5d-cba5-00a1-cf3e-d83c0e2f5189.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/58edf60f-67f5-6fb5-cfe6-77c246c24e71.png)

④「APIとサービス」>「認証情報」>「サービスアカウント」に表示される、作成したサービスアカウントをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/76271272-f035-59b9-ff1c-d070b5c8e154.png)

⑤「キー」>「鍵を追加」>「新しい鍵を作成」をクリックし、鍵を作成します。
キータイプを選択し、「作成」をクリックします。
※JSONとP12どちらのキータイプも使えますが、今回はJSONタイプにしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/1828c047-ea5b-dbba-e37a-ec4666c6b1f3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/6efa72fc-95f1-3d74-893f-5b2bb5f65a3b.png)

するとjsonファイルがPCにダウンロードされます。



## ３．サービスアカウントへドメイン全体の権限を付与する
①Google Workspace 管理コンソールにサインインします。

https://admin.google.com/

②「セキュリティ」>「アクセスとデータ管理」>「APIの制御」>「ドメイン全体の委任」>「ドメイン全体の委任を管理」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/cdeb8327-1a46-5961-a041-20a43828cf7c.png)

③「新しく追加」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/612c3430-6b52-a581-6cb8-abfcabc0a7b8.png)

④「クライアントID」・「OAuthスコープ」に以下の値を入力し「承認」をクリックします。
〇クライアントID:"２．サービスアカウントを作成する"手順で作成したサービスアカウントのIDです。
「APIとサービス」>「認証情報」>「サービスアカウント」画面より、対象サービスアカウントをクリックすると表示されるサービスアカウントの詳細画面の「一意のID」または、PCにダウンロードされたJSONファイルより確認できます。
〇OAuthスコープ：https://www.googleapis.com/auth/spreadsheets

※他のGoogleサービスのスコープは以下URLを参照ください。

https://developers.google.com/identity/protocols/oauth2/scopes?hl=ja

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/494624e4-08a7-bd86-002e-a0f654d1fef1.png)

## ４．GSuite アプリケーション スコープの設定をする
※今回はStudio v23.4.2, UiPath.GSuite.Activities v2.4.3を使用しました。

①『GSuite アプリケーション スコープ』>「プロパティ」に以下の設定をします。
・キーの種類：「JSON」
・ユーザーのメールアドレス：実行アカウントのメールアドレス
・ドメイン全体へのアクセス件あり：「オン」
・キーパス：ダウンロードされたJSONファイルのフルパス
・認証の種類：「ServiceAccountKey」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/bfb77329-24cb-8518-ed0f-7d29422ff1c2.png)

※注意
「認証スコープ」は設定不要です。"３．サービスアカウントへドメイン全体の権限を付与する"手順で承認したスコープ以外のスコープにチェックが入っているとエラーになりますので気をつけてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/7400d4ac-3ede-3f73-ed9e-1ee44980bbb2.png)


②『GSuite アプリケーション スコープ』のBodyに『範囲を読み込み』・『範囲を書き込み』を配置し、必要な情報を設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/1fdd30e8-d895-12cb-0889-0b2f64a1d3a3.png)

③実行すると、『範囲を読み込み』で読み込んだ値が『範囲を書き込み』で書き込まれました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532647/2018d81a-c456-9487-2bb5-8588dd49d8f8.png)