Google SpreadsheetをUiPathで読み取る方法(無料)

  • 2020年8月18日
  • 2021年5月1日
  • DIGITAL

*If you are looking for tips to solve issues around connection between google spreadsheet and UiPath for reading data, English follows Japanese.

UiPathでGoogle Spreadsheetのデータを読み取りたいのだけど、どうすればいいの?UiPathもGoogle Spreadsheetも無料版のままで試したい。エラーが出たときの対処方法も知りたい。

こんな疑問に答えていきます。

こんにちは!よんりん(Yonrin)です。
当記事を書いている私は、デジタル技術のコンサルタントです。

Google SpreadsheetとUiPathとの連携については、いくつかコツが必要です。
特に、無料の環境で試そうとする場合は、つまづくこともあるはず。

私も3日間かけてやっといろいろなエラーをひとつずつ潰すことができたので、そのあたりをシェアさせてもらいますね。

前提は以下です。

 UiPath 無料評価版(Community Edition)を利用
 Google Cloud Platformを無料枠内で利用
 記事執筆時点の情報(2020年8月)

未経験から最短3カ月でプログラマーへ!!【0円スクール】

UiPathからGoogle Spreadsheetにアクセスする方法(無料でやる場合)

UiPathからGoogle Spreadsheetにアクセスするには認証が必要です。

かみ砕くと、Google側に対して、「UiPathは怪しい者ではないですよ」ということを伝えることが必要ということです。

Google側に設定をする必要があります。
やり方は、以下の3通り。

  1. APIキー
  2. OAuthクライアントID
  3. サービスアカウントキー

ただ無料の環境だと、①で試される方が多いと思います。
ここでは、①の流れを説明しますね。

Google の有料サービスを利用されているような環境だと、②か③だと思います。

ちなみに、APIキーを利用する場合、UiPathがGoogleSpreadsheetに対してできる操作は、データの読み取りのみです。

認証設定の流れ

まず、以下の設定が前提になります。

 UiPathに Google GSuiteアクティビティがインストールされていること
 Google Cloud Platformにユーザ登録(無料)していること

流れはこんな感じです。

1、2の部分の手順については、こちらのUiPathのブログが参考になります。
ブログの通りにやれば、特につまづくこともなかったです。

API有効化についてはGmailの例になっていますが、単純にGoogleSpreadsheetに読み替えればオッケーです。

3も恐らく大丈夫ですが、4は少し注意が必要です。
この記事では3、4について説明しますね。

Google Cloud PlatformでAPIキーの生成

まずは左側の「認証情報」メニューを選んで、「認証情報を作成」ボタンを押して「APIキー」を選択。

APIキーが作成されます。

念のため、APIキーの制限をかけておきましょう。

アプリケーションの制限で、自分のIPアドレスをセットしておきます。

ここのIPアドレスが間違っている場合、UiPathを実行したときにエラーメッセージに自分のIPアドレスが表示されます。

エラーメッセージはこんな感じです(以下のXXXの部分)

Google.Apis.Requests.RequestError
The provided API key has an IP address restriction. The originating IP address of the call (XXX.XXX.XXX.XXX) violates this restriction. [403]
Errors [
Message[The provided API key has an IP address restriction. The originating IP address of the call (XXX.XXX.XXX.XXX) violates this restriction.] Location[ – ] Reason[forbidden] Domain[global]
]

もし分からなければ、最悪そのタイミングでここの情報を直せば大丈夫です。

更に、APIの制限でGoogle Sheets APIをセットして、保存します。

生成したAPIキーをUiPathに設定

先ほど生成したAPIキーをコピーします。

そして、UiPathのGSuiteアプリケーションスコープのプロパティにセット。
ダブルクォーテーション(” “)で括ることを忘れずに。

同じプロパティにて認証情報もApiKeyにしておきましょう。
この設定を忘れると、エラーで実行できませんのでご注意ください。

UiPathのプロセス全体像

プロセスのデザインはこんな感じです。
GoogleSpreadsheetから読み取ったデータをローカルPCのExcelに書き込みます。

ちなみに読み取るGoogleSpreadsheetの情報はこんな感じです。

実行完了した際のExcelファイルです。無事コピー完了。

UiPathのプロセス作成つまづくポイント

私がやっていてつまづいたポイントと、エラー内容です。

スプレッドシートID

UiPathのデータスクレイピング内で「範囲を読み込み」のプロパティにGoogleSpreadsheetの「スプレッドシートID」を設定する必要があります。

以下のようなエラーが出た場合は、スプレッドシートIDが正しく設定できていない可能性があります。

Google.Apis.Requests.RequestError
Requested entity was not found. [404]
Errors [
Message[Requested entity was not found.] Location[ – ] Reason[notFound] Domain[global]

以下のように、スプレッドシートIDとは、GoogleSpreadsheetのURLに含まれる”/d/”と”/edit”の間に挟まれた文字列のことです。

左上のスプレッドシート名とは異なりますので、注意してくださいね。

GoogleSpreadsheetの権限設定(共有)

GoogleSpreadsheetの共有設定を変更する必要があります。
以下のようなエラーが出た場合は、確認してみてください。

Google.Apis.Requests.RequestError
The caller does not have permission [403]
Errors [
Message[The caller does not have permission] Location[ – ] Reason[forbidden] Domain[global]

シートの画面右上、「共有」ボタンを押します。

それから、「リンクを知っている全員」にします。
セキュリティ的には不安なので、試すことが出来たら元に戻しておきましょう。

For English Readers

Here’re some tips that may help you solve the issue while you try to connect Google Sheet and UiPath by using API key.

Assumptions are that you want to use free edition of UiPath and trial version of Google Cloud Platform, and also you would use API key for the authentication method between UiPath and Google Cloud Platform.

Set a right Spreadsheet ID

Google.Apis.Requests.RequestError
Requested entity was not found. [404]
Errors [
Message[Requested entity was not found.] Location[ – ] Reason[notFound] Domain[global]

When you get the error above, you have to check if you have set the right “Spreadsheet ID” of Google Sheet to UiPath.

The Spreadsheet ID is a character string of the URL of your Google Sheet.

You can find it like in below format and the Spreadsheet ID is the one between “/d/” and “/edit” (XXXX)

https://docs.google.com/spreadsheets/d/XXXX/edit#gid=0

Share setting Google Sheet

Google.Apis.Requests.RequestError
The caller does not have permission [403]
Errors [
Message[The caller does not have permission] Location[ – ] Reason[forbidden] Domain[global]

When you get this error, you might need to check the setting of “Share” which you can find at top-right corner of the spreadsheet.

You need to set to “Anyone with the link”.

まとめ

SpreadsheetのデータをUiPathで読み取る方法について説明しました。
実際に色々と試してみてくださいね。

色々な場面での使い方があるはず。

私もユースケース、考えてみようと思います。
思いついたらまた紹介していきますね。

以上です。