やりたいこと
BizRobo!でREST Webサービス呼出(Call REST Web Service)ステップを使ってスプレットシートを操作したいとき、追加ヘッダーにアクセストークンを指定する必要があります。
そのアクセストークンを取得する為にはOAathの設定をしなければなりません。
そこで本記事では、Google OAuth 2.0認証のアクセストークン取得をするための設定をやってみます。
背景
今までにAPIを利用したロボットを作成した経験はありますが、前段階としてAPIを使えるための設定をすることは初めてでした。
ただでさえAPIを用いたロボットの作成はとっつきにくいのに、OAuthの設定が必要となると混乱必至です、、、
どうにか利用しない方法はないかと思いましたがスプレッドシートを操作するロボットを作成するには必要なため覚悟を決めて設定に取り組みました。
今後の作業の備忘録として、同じような方への一助として、本記事が役に立つだろうと思い記事を作成しました。
本記事はサードパーティーのツールを利用するため、動作を保証するものではございません。
APIを利用するための参考としてお考え下さい。
事前準備
Google Cloudの認証情報
参考資料
https://zenn.dev/yusuke49/articles/6c147bd6308912
利用バージョン
本記事で利用する各システムの情報は下記になります。
対象システム | 利用バージョン |
---|---|
BizRobo! | 11.3.0.2 |
Google Sheets API | 2024/02/01時点 |
MCのOAuth設定
アプリケーション作成
MCにログインしてリポジトリ > OAuth から+をクリックしてOAuthアプリケーション作成画面を立ち上げます。
以下の必要事項が入力出来たらOKボタンを押します。
プロパティ | 設定値 | 補足 |
---|---|---|
プロジェクト | test | ロボットを配置するプロジェクト選択 |
名前 | googleSpreadSheets | 任意の名前 |
サービスプロバイダ | ||
コンシューマーキー | *** | OAuth 2.0 クライアント ID のクライアントID |
コンシューマーシークレット | *** | OAuth 2.0 クライアント ID のクライアントシークレット |
コールバックURL | http://localhost:8080/mc/OAuthCallback | 初期表示のまま |
スコープ | https://www.googleapis.com/auth/spreadsheets | スプレットシートを利用する場合 |
ユーザー追加
作成したアプリケーションの3点リーダーからユーザーの追加をクリックします
ユーザー名入力
スプレットシートを操作するユーザのメールアドレスを入力して、次へをクリックします
認証
外部リンクのアイコンをクリックします
Googleのログイン画面が表示されるのでログインします
続行をクリックします
続行をクリックします
コールバックURLにリダイレクトされるので「close this window」リンクをクリックします
MCの画面へ戻り、次へをクリックします
アクセストークンの取得
アクセストークンとトークンを更新の値をコピーします。
終了ボタン押すと二度と見えなくなるので注意してください。
終了ボタンを押してMCの設定は完了です
ロボット作成
ここまででOAuthの設定ができましたので、それを用いたロボットの作成方法について説明します。
ゴール
アクセストークンを取得するまで
手順
以下のステップを用いてロボットを作成します。
各ステップごとの詳しい設定手順を説明していきます。
①タイプファイル作成
ロボットのステップを設定する前にタイプファイルを用意します。
OAuthCredentialsを選択します
以下を指定して変数を追加します
プロパティ | 設定値 |
---|---|
serviceProvider | |
accessToken | MCでコピーしたアクセストークンの値 |
refreshToken | MCでコピーしたトークンの更新の値 |
consumerKey | OAuth 2.0 クライアント ID のクライアントID |
consumerSecret | OAuth 2.0 クライアント ID のクライアントシークレット |
②REST Webサービス呼出(Call REST Web Service)
1つめのステップを作成します。
ステップを選択します
値を設定します
プロパティ | 設定値 |
---|---|
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 | 変数 |
パラメータの下
プロパティ | 設定値 |
---|---|
エンコード | Form-urlencoded |
出力値 | ブラウザにロード |
オプション | OAuth |
変数 | oAuthCredentials |
ヘッダー
ヘッダー | 値 | 型 |
---|---|---|
Content-Type | Content-Type:application/x-www-form-urlencoded | ヘッダーのテンプレート |
③JSONで開く
REST APIを実行してアプリケーションを右クリックして、開くをクリックします
View as JSONステップが自動で追加されます
④アクセストークン取得
oAuthCredentials.accessTokenを上書きします
以上でロボットの作成は完了になります。
NG例
MCのOAuthを使わずに、Google OAuth 2.0認証を行ってみます。
Chroniumから https://accounts.google.com/o/oauth2/auth を開きます。
ログインユーザーを入力します
ボタンをクリックします
ログインできません。
OAuthの設定が必要であることが分かります。
まとめ
今回はMCのOAuthを使ったアクセストークンの取得ロボットを作成しました。
設定方法さえわかっていればさほど難しくはないものの、何も知らない状態からだと大変でした。
MyBizRobo!ユーザーはドキュメントもありますので参考にしてみてください。
分かりやすくまとまっていて非常に助けになります。
またRPAテクノロジーズでは、Google Sheetsを操作するコネクターをリリースしております。
より簡単に設定ができますのでぜひご利用ください。
利用する場合はこちら
APIを利用するとロボットの構築の幅が広がりメンテナンス性も向上できると思います。
APIを利用したロボットの開発のための一助となれば幸いです。