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
Sign up today and we'll email you the newest articles every week.
Thank you for subscribing! Each week, we'll send the best automation blog posts straight to your inbox.