【スプレッドシートをRPAで楽々編集！】BizRobo!でGoogle Sheets APIを呼びだす方法

# 本記事でできること
BizRobo!でGoogle Sheets APIを使ったレコードの操作方法を紹介します。
APIを用いて開発をすることでスプレットシートと別システムの自動化が実現しやすくなると思います。
また、Google Sheets APIの使い方やBizRobo!でAPIを利用するための設定方法について理解できます。

## 背景
BizRobo!はステップの編集だけで簡単にデジタルレイバー(ロボット)を作成できるので非エンジニアの方にもなじみやすいのが特徴だと思います。
ただ、画面操作だけの開発だとクラウドサービスのアップデート等でUIが変更になるとロボットが止まってしまって改修に時間がかかってしまう、、、というケースも少なくないと思います。
そういった状況を解決するためにAPIを利用するという方法があります。
ただ、非エンジニアの方の中には「APIって高度なイメージがあって難しそう」「ステップの操作でも実行できるから充分」と思う方もいらっしゃると思います。(かくゆう私もそう思っていた時期がありました)
そのような方に向けて弊社で利用しているAPIとその使い方について紹介したいと思います。

:::note warn
本記事はサードパーティーのツールを利用するため、動作を保証するものではございません。
APIを利用するための参考としてお考え下さい。
:::


## 事前準備
### Google Cloudの認証情報
OAuth 2.0 クライアント IDを生成

※詳しくは[Google での認証方法](https://cloud.google.com/docs/authentication?hl=ja)を参照してください。漏洩すると悪用される可能性があるため、適切に管理してください。
### スプレットシート新規作成
本記事で利用するスプレッドシートを用意します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/eb6b619a-744f-2cfb-f5d6-cafc2eb85cf7.png)

- 上記キャプチャの消されているURLの部分はspreadsheetIdと呼ばれるものです
- ロボットで使いますのでコピーしてください

### アクセストークン
 MCのOAuth設定を行い、Google OAuth 2.0認証のアクセストークンは取得できること
 詳しくは[こちら](https://qiita.com/CatOnTheLegs/items/843b0ae98253bebdef9e)の記事をご参照ください。

### 利用バージョン
本記事で利用する各システムの情報は下記になります。
| 対象システム | 利用バージョン |
|:-----------|:-----------|
| BizRobo! | 11.3.0.2 |
| Google Sheets API | 2024/02/01時点 |


## ロボット作成
### ゴール
Google スプレットシートファイルの最後の行にデータを追加します。
行は「名前」「ふりがな」「メールアドレス」「部署」のA～D列が対象です。

### 手順
以下のステップを用いてロボットを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/7067d766-0dd5-cb5e-07ae-6e8f167b1504.png)

ロボット作成手順を説明していきます。

#### ①タイプファイル作成
ステップの作成に入る前にタイプファイルを作成します。
**A:OAuth用のタイプファイル**
タイプはOAuthCredentialsを選択します
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/15f295d1-8794-30a9-57bf-fe963154d42e.png" width="500px">
以下を指定して変数を追加します
|プロパティ|設定値|
|----|----|
|serviceProvider|Google|
|accessToken|MCでコピーしたアクセストークンの値|
|refreshToken|MCでコピーしたトークンの更新の値|
|consumerKey|OAuth 2.0 クライアント ID のクライアントID|
|consumerSecret|OAuth 2.0 クライアント ID のクライアントシークレット|
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/eb14de8d-c4fb-296c-f5f3-5eebdc566205.png" width="800px">

**B:スプレッドシートで利用するタイプファイル**
シートに追加する列分の属性を設定し、input.typeを新規作成し、変数に追加します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/9ebe9351-1080-2694-157a-af1ee062644c.png)

#### ②REST Webサービス呼出（Call REST Web Service）
ステップの作成を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/4dc5bab6-c767-6c31-4f00-069a82eeebd3.png)
|プロパティ|設定値|
|--|--|
|URL|https://www.googleapis.com/oauth2/v4/token|
|リクエスト|POST|
|パラメータ||
|client_secret|oAuthCredentials.consumerSecret|
|grant_type|refresh_token|
|refresh_token|oAuthCredentials.refreshToken|
|client_id|oAuthCredentials.consumerKey|
|　|　|
|オプション|OAuth|
|変数|oAuthCredentials|
|ヘッダ||
|Content-Type|application/x-www-form-urlencoded||

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/ca76cf4e-c72e-5a51-ea77-098c0f43dbcd.png)

#### ③JSONで開く
REST APIを実行してアプリケーションを右クリックして、開くをクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/e8ba4b28-b3fb-8ef0-e684-8fcca7e501dc.png)
View as JSONステップが自動で追加されます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/7c13b347-5fac-6e41-2108-5c6f926c0a8b.png)

#### ④アクセストークン取得
oAuthCredentials.accessTokenを上書きします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/7dc0f58b-decd-ce5a-f46a-f38f19bb6cb9.png)


#### ⑤変数の割当（Assign 名前）
スプレットシートに追加する名前をステップに設定します。
(本記事では「ビズロボ太郎」としています)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/154c605e-efac-ae46-74fe-555ffd02a182.png)

#### ⑥変数の割当（Assign ふりがな）
スプレットシートに追加するふりがなをステップに設定します。
(本記事では「びずろぼたろう」としています)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/47831b71-c700-876d-b252-9a44c2c2b325.png)

#### ⑦変数の割当（Assign メールアドレス）
スプレットシートに追加するメールアドレスをステップに設定します。
(本記事では「test@XXX.com」としています)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/cdfe9d47-4fc1-530a-5fae-43725fac7baf.png)

#### ⑧変数の割当（Assign 部署）
スプレットシートに追加する部署をステップに設定します。
(本記事では「人事部」としています)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/5e53d431-3590-b53f-0aa5-21de4fc25220.png)

#### ⑨REST Webサービス呼出（Call REST Web Service）
ステップを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/4dc5bab6-c767-6c31-4f00-069a82eeebd3.png)

以下プロパティの指定です。

|プロパティ|設定値|
|----|----|
|URL|https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/A1:append?valueInputOption=USER_ENTERED&insertDataOption=INSERT_ROWS<br>(環境に応じて「{spreadsheetId}」を書き換えてください)|
|リクエスト|POST|
|ヘッダー|>>Authorization: Bearer << + oAuthCredentials.accessToken|

他はデフォルト値です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/aff30ee6-e45d-1a4e-9fc9-f53561e31482.png)


参考までにリクエストボディのコードを記述します。
```json
>>
{
  "values": [
    ["<<+input.名前+>>",
     "<<+input.ふりがな+>>",
     "<<+input.メールアドレス+>>",
     "<<+input.部署+>>"]
  ]
}
<<
```


スプレットシートに行が追加されました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570885/2a869069-4bfb-687e-e6b3-de5969cefd83.png)



以上でロボットの作成は完了になります。

# まとめ
今回はスプレットシートの最終行に追加するロボットを作成しました。
OAuthの設定にクセがあるものの手順が分かれば比較的容易にロボットが作れました。
スプレッドシートの操作が自動化できると作業効率化の幅が広がると思うのでぜひご活用ください。

RPAテクノロジーズでは、Google Sheetsを操作するコネクターをリリースしております。
より簡単に設定ができますのでぜひご利用ください。
利用する場合は[こちら](https://robot-hub.bizrobo.com/products/view/5157746f4e476331526c686d57467059626b464763465261536d64424f46687a53554651576c4635625531554d4442474b33633950513d3d)