Google GSuiteアクティビティ(認証)の徹底解説

google-g-suite-activity

こんにちは。 UiPath株式会社の洪です。

Google GSuiteアクティビティがUiPath Go!とオフィシャルフィードにリリースされたことで、Googleカレンダー、Googleドライブ、Googleスプレッドシート及びGmailなどのGoogle Cloud GSuiteアプリの自動化が簡単になりました。

一方でGSuiteアクティビティを利用するためには、Google側のAPI許可、認証等の設定を行う必要があります。そこで今回は多くお問い合わせのある認証設定に関して、詳しく解説いたします。

事前準備

1. Google GSuiteアクティビティをインストールする必要があります。Studioの「パッケージを管理」ボタンをクリックします。

google-g-suite-activity1

別ウィンドウで開かれた設定画面の左メニューの「Official」をクリックして選択します。次に、検索窓に「GSuite」と入力します。検索結果欄に表示された「UiPath.GSuite.Activities」をクリックして選択します。 右メニューの「インストール」ボタンをクリックしてパッケージをインストールします。最後に、「保存」ボタンを押して完了です。なおSaveの際に、ライセンス確認がありますので、一読してから同意しましょう。

google-g-suite-activity2

2.Google Cloud Platformにサインインし、Google GSuite各アプリケーションへのAPIアクセスを有効にします。

 ①以下の手順通りに、プロジェクトを新規作成します。※既に存在する場合、新規作成は不要となります

 ※Google Cloudのプロジェクトの作成、管理ガイド

google-g-suite-activity3
google-g-suite-activity4

②以下手順の通りに「APIライブラリ」画面を開き、操作対象APIアクセスを有効にします。

 Google Calendar、Google Drive及びGoogle Sheets等のAPIを使用したい場合、同じ方法で有効にしてください。

google-g-suite-activity5
google-g-suite-activity6

GSuiteアプリケーションスコープと認証方式

「GSuite アプリケーションスコープ」は、認証情報を設定するためのアクティビティです。「UiPath.GSuite.Activities」パッケージの各アクティビティは、必ず「GSuite アプリケーションスコープ」アクティビティのスコープに入れないといけません。

「GSuite アプリケーションスコープ」が下記三つの認証タイプをサポートします

google-g-suite-activity7

APIキー

スプレッドシートの読み取る操作しかできませんので、使う場面が少ないため、今回APIキー認証の説明は割愛させていただきます。

OAuthクライアントID認証の設定方法

 1.OAuthクライアントIDを作成します。

   ①Google Cloud Platformにサインインし、以下手順の通りに認証情報画面を開きます。

google-g-suite-activity8

 ②「認証情報を作成」ボタンをクリックし、表示されたメニューにある「OAuthクライアントID」項目をクリックします。

google-g-suite-activity9

 ③名前を入力し、作成ボタンを押します。

google-g-suite-activity10

2. OAuth同意画面を作成します。

  ①以下手順の通りにOAuth同意画面を開きます。

google-g-suite-activity11

  ②アプリケーション名、サポートメールを入力します。

google-g-suite-activity12

   ③「スコープを追加」ボタンを押します。

google-g-suite-activity13

  ④検索欄に「Gmail API」を入力し、「Enter」キーを押します。一覧に検索されたAPIにチェックを入れて、画面右下部の「追加」ボタンを押下します。

google-g-suite-activity14

⑤「保存」ボタンを押します。

google-g-suite-activity15

3.以上でOAuthクライアントIDの設定は完了です。GSuiteApplicationScopeアクティビティを設定して検証してみます。

  ①認証情報画面を開き、作成したOAuthクライアントIDの「鉛筆」アイコンをクリックします。

google-g-suite-activity16

  ②以下手順の通りに、表示されたGSuiteApplicationScopeアクティビティのプロパティを設定します。

 ※サンプルは明文で設定しましたが、以下方法でクライアントIDとクライアントシークレット値を管理するのはお勧めです。

  • UiPath Orchestratorのアセットに保存する

  • Windows資格情報に保存する

  • Excelなどに保存する

google-g-suite-activity17

    ③UiPath.GSuite.Activities.SendEmailアクティビティで送信テストしてみます。

google-g-suite-activity18

  ワークフローを実行したら、Googleのログオンダイアログが表示されます。

google-g-suite-activity19

  Gmail操作の確認ダイアログが表示され、「許可」を押します。

google-g-suite-activity20

 「許可」を押します。

google-g-suite-activity21

ジョブ処理が続きました。確認してみると、テスト送信メールが正常に届きました。

google-g-suite-activity22

補足:    一つの「GSuite アプリケーションスコープ」が繰り返し実行される場合、許可情報が保持できますので、次回ジョブを実行する場合、確認ダイアログが表示されません。

 ただし、異なる「GSuite アプリケーションスコープ」が実行されたら、毎回許可画面が表示されますので、Attended Robotの自動化に推奨されます。

 Parallel(並列)のアクティビティを使用して、許可処理を並列で横並びに作成すれば、手動許可処理も省けます。

サービスアカウントキーの設定方法

1.下記手順でサービスアカウントキーを作成します。 

 ①Google Cloud Platformにサインインし、認証情報画面を開きます。

 ②「認証情報を作成」ボタンをクリックし、表示されたメニューにある「サービスアカウントキー」項目をクリックします。

google-g-suite-activity23

  ③サービスアカウント名を入力し、任意の権限を指定します(今回は「Project参照者」に設定しました)。

    JSONとP12どちらのキータイプも使えますが、今回はJSONタイプにしました。

google-g-suite-activity24

  ④作成された.jsonキーファイルが自動にダウンロードされました。

google-g-suite-activity25

2.Domain-wide権限をService Accountへ付与します。

  ※Googleの設定ガイド

   ①Google管理コンソール画面を開き、「セキュリティ」メニューをクリックします。

google-g-suite-activity26

  ②セキュリティ画面の「詳細設定」メニューをクリックし、「API クライアント アクセスを管理する」項目をクリックします。

google-g-suite-activity27

  ③API クライアント アクセスを管理する画面にて、APIアクセス許可を追加します。

 クライアント名:作成された.jsonキーファイルにある「client_id」

 1つ以上のAPIスコープ:https://mail.google.com/

 ※他のGoogleサービスのAPIスコープはAPIスコープガイドをご参照ください。

google-g-suite-activity28

3.以上でサービスアカウントキーの設定は完了です。GSuiteApplicationScopeアクティビティを設定し、送信処理を実行してみます。

google-g-suite-activity29

 処理が正常に終了し、テスト送信メールが正常に届きました。

google-g-suite-activity30

補足: Googleドライブ、スプレッドシート及びカレンダを操作する場合、Domain-wide権限をService Accountへ付与せず、個人GSuiteアカウントでも使える方法があります。

こちらの手順は、以下の通りとなります。

①上記同じ手順で、個人GSuiteアカウントのサービスアカウントキーファイルを作成します。

②操作対象のGoogle ドライブのフォルダ、スプレッドシートファイル等を手順①で作ったサービスアカウントキーファイルにあるclient_emailに共有します。

google-g-suite-activity31

おわりに

今回は、主にGSuite アプリケーションスコープの認証方式とGoogle側の設定方法を紹介いたしました。

便宜上Gmail送信処理を例として説明しておりますが、Gmailの送受信処理はUiPath.Mail.ActivityパッケージのSMAPメール送信/IMAPメール受信アクティビティの方がさらに使いやすいです。Googleドライブとカレンダの自動化処理は、Google GSuiteアクティビティのご利用をお勧めします。

Avatar Placeholder Big
Xin Hong

Acctg. & Rprtg. Advisory Senior, UiPath