UiPath Blog
こんにちは。 UiPath株式会社の洪です。
Google GSuiteアクティビティがUiPath Go!とオフィシャルフィードにリリースされたことで、Googleカレンダー、Googleドライブ、Googleスプレッドシート及びGmailなどのGoogle Cloud GSuiteアプリの自動化が簡単になりました。
一方でGSuiteアクティビティを利用するためには、Google側のAPI許可、認証等の設定を行う必要があります。そこで今回は多くお問い合わせのある認証設定に関して、詳しく解説いたします。
事前準備
1. Google GSuiteアクティビティをインストールする必要があります。Studioの「パッケージを管理」ボタンをクリックします。
別ウィンドウで開かれた設定画面の左メニューの「Official」をクリックして選択します。次に、検索窓に「GSuite」と入力します。検索結果欄に表示された「UiPath.GSuite.Activities」をクリックして選択します。 右メニューの「インストール」ボタンをクリックしてパッケージをインストールします。最後に、「保存」ボタンを押して完了です。なおSaveの際に、ライセンス確認がありますので、一読してから同意しましょう。
2.Google Cloud Platformにサインインし、Google GSuite各アプリケーションへのAPIアクセスを有効にします。
①以下の手順通りに、プロジェクトを新規作成します。※既に存在する場合、新規作成は不要となります
②以下手順の通りに「APIライブラリ」画面を開き、操作対象APIアクセスを有効にします。
Google Calendar、Google Drive及びGoogle Sheets等のAPIを使用したい場合、同じ方法で有効にしてください。
GSuiteアプリケーションスコープと認証方式
「GSuite アプリケーションスコープ」は、認証情報を設定するためのアクティビティです。「UiPath.GSuite.Activities」パッケージの各アクティビティは、必ず「GSuite アプリケーションスコープ」アクティビティのスコープに入れないといけません。
「GSuite アプリケーションスコープ」が下記三つの認証タイプをサポートします
APIキー
スプレッドシートの読み取る操作しかできませんので、使う場面が少ないため、今回APIキー認証の説明は割愛させていただきます。
OAuthクライアントID認証の設定方法
1.OAuthクライアントIDを作成します。
①Google Cloud Platformにサインインし、以下手順の通りに認証情報画面を開きます。
②「認証情報を作成」ボタンをクリックし、表示されたメニューにある「OAuthクライアントID」項目をクリックします。
③アプリケーションの種類で「デスクトップ アプリ」を選択し、名前を入力し、作成ボタンを押します。
2. OAuth同意画面を作成します。
①以下手順の通りにOAuth同意画面を開きます。
②アプリケーション名、サポートメールを入力します。
③「スコープを追加」ボタンを押します。
④検索欄に「Gmail API」を入力し、「Enter」キーを押します。一覧に検索されたAPIにチェックを入れて、画面右下部の「追加」ボタンを押下します。
⑤「保存」ボタンを押します。
3.以上でOAuthクライアントIDの設定は完了です。GSuiteApplicationScopeアクティビティを設定して検証してみます。
①認証情報画面を開き、作成したOAuthクライアントIDの「鉛筆」アイコンをクリックします。
②以下手順の通りに、表示されたGSuiteApplicationScopeアクティビティのプロパティを設定します。
※サンプルは明文で設定しましたが、以下方法でクライアントIDとクライアントシークレット値を管理するのはお勧めです。
UiPath Orchestratorのアセットに保存する
Windows資格情報に保存する
Excelなどに保存する
③UiPath.GSuite.Activities.SendEmailアクティビティで送信テストしてみます。
ワークフローを実行したら、Googleのログオンダイアログが表示されます。
Gmail操作の確認ダイアログが表示され、「許可」を押します。
「許可」を押します。
ジョブ処理が続きました。確認してみると、テスト送信メールが正常に届きました。
補足: 一つの「GSuite アプリケーションスコープ」が繰り返し実行される場合、許可情報が保持できますので、次回ジョブを実行する場合、確認ダイアログが表示されません。
ただし、異なる「GSuite アプリケーションスコープ」が実行されたら、毎回許可画面が表示されますので、Attended Robotの自動化に推奨されます。
Parallel(並列)のアクティビティを使用して、許可処理を並列で横並びに作成すれば、手動許可処理も省けます。
サービスアカウントキーの設定方法
1.下記手順でサービスアカウントキーを作成します。
①Google Cloud Platformにサインインし、認証情報画面を開きます。
②「認証情報を作成」ボタンをクリックし、表示されたメニューにある「サービスアカウントキー」項目をクリックします。
③サービスアカウント名を入力し、任意の権限を指定します(今回は「Project参照者」に設定しました)。
JSONとP12どちらのキータイプも使えますが、今回はJSONタイプにしました。
④作成された.jsonキーファイルが自動にダウンロードされました。
2.Domain-wide権限をService Accountへ付与します。
①Google管理コンソール画面を開き、「セキュリティ」メニューをクリックします。
②セキュリティ画面の「詳細設定」メニューをクリックし、「API クライアント アクセスを管理する」項目をクリックします。
③API クライアント アクセスを管理する画面にて、APIアクセス許可を追加します。
クライアント名:作成された.jsonキーファイルにある「client_id」
1つ以上のAPIスコープ:https://mail.google.com/
※他のGoogleサービスのAPIスコープはAPIスコープガイドをご参照ください。
3.以上でサービスアカウントキーの設定は完了です。GSuiteApplicationScopeアクティビティを設定し、送信処理を実行してみます。
処理が正常に終了し、テスト送信メールが正常に届きました。
補足: Googleドライブ、スプレッドシート及びカレンダを操作する場合、Domain-wide権限をService Accountへ付与せず、個人GSuiteアカウントでも使える方法があります。
こちらの手順は、以下の通りとなります。
①上記同じ手順で、個人GSuiteアカウントのサービスアカウントキーファイルを作成します。
②操作対象のGoogle ドライブのフォルダ、スプレッドシートファイル等を手順①で作ったサービスアカウントキーファイルにあるclient_emailに共有します。
おわりに
今回は、主にGSuite アプリケーションスコープの認証方式とGoogle側の設定方法を紹介いたしました。
便宜上Gmail送信処理を例として説明しておりますが、Gmailの送受信処理はUiPath.Mail.ActivityパッケージのSMAPメール送信/IMAPメール受信アクティビティの方がさらに使いやすいです。Googleドライブとカレンダの自動化処理は、Google GSuiteアクティビティのご利用をお勧めします。
Acctg. & Rprtg. Advisory Senior, UiPath