この記事では
汎用的に使えるアクセス/リフレッシュトークンの取得方法は、以下の記事を参考にしてください!

アクセストークン/リフレッシュトークンとは?

そもそもアクセストークンとリフレッシュトークンって何?



ウェブサービスに「このユーザーは認証済みだよ」と教えるためのデジタルな「鍵」のようなものです。



ただし、2つのトークンには少し役割の違いがあります。
項目 | アクセストークン | リフレッシュトークン |
---|---|---|
役割 | 特定のアプリやサービスにアクセスするための鍵 | 新しいアクセストークンをもらうための鍵 |
期限 | 1時間程度で使えなくなる | 長期間使える |
例えば、自動販売機で飲み物を買う場面を想像してみましょう。
アクセストークンが「飲み物を買うためのチケット」だとすると、このチケットは使える時間が短く、1回使ったら無効になります。
でもリフレッシュトークンを持っていると、チケットが期限切れになっても新しいチケットをもらえるので、何度も飲み物を買えるという感じです。



これにより安全かつスムーズにアプリを使い続けられるようになっています。



なるほど!イメージが湧いてきました!
公式ドキュメント
GASでアクセス/リフレッシュトークンを取得する



実際にアクセス/リフレッシュトークンを取得する方法は?



以下のサイトを参考に、トークンを取得してください



でも分かりにくいと思うので、本記事にて補足説明します


↑記事の手順を参考に、以下の補足説明を見るようにしてください。
補足① 手順2~4:デプロイとURL設定手順



デプロイってどういう事?



デプロイとは自分で作ったGASを、ネット上で誰かが使えるように公開することです



ネットに公開すると誰でもGASを実行できてしまうのでは?



デプロイ時にアクセス権の範囲を「自分」にすれば安心です!
GASをWebアプリケーションとしてデプロイする手順
参考記事の以下の部分を補足します。
2. 続いて、拡張機能->Apps ScriptでGASを表示し、デプロイボタンを押して、ウェブアプリとしてデプロイしよう。
3. デプロイ後に表示されるウェブアプリURLをコピーし、スプレッドシートのウェブアプリURL欄にペーストしよう。
スクリプトを外部アプリケーションから実行できるようにするため、GASをWebアプリケーションとして公開します。
- エディター画面の「デプロイ」 > 「新しいデプロイ」を選択します。
- デプロイの設定で、タイプを「Webアプリケーション」にし、アクセス権を「全員(匿名ユーザー含む)」または「自分」に設定します。
- 「デプロイ」ボタンを押して、公開URLが生成されるので、このURLをコピーしておきます。
参考記事のスプレッドシートのGASをデプロイした際に表示されるウェブアプリURLをコピーしてください。
そしてスプレッドシートのB2セルに貼り付けます。




認証情報にURLを追加
4. GCPプロジェクト側の、リダイレクトURLにもウェブアプリURLを設定しよう。
GoogleCloudPlatformにて作成した認証情報を開いて、承認済みのリダイレクトURIにデプロイしたアプリのURLをコピペしてください。


補足② 手順6:クライアント/シークレットIDについて
6. クライアントID、クライアントシークレット欄に、GCPプロジェクトで取得したものを設定しよう。
クライアントID/クライアントシークレットはGoogleCloudPlatformにて取得してください。


クライアントID/クライアントシークレットを未作成の場合は、以下のサイトを参考に認証情報を作成ください。


補足③ 手順7:必要なGoogleAPIスコープについて
7. スコープは10個まで設定できます。設定しない場合は空白を設定しよう。
GoogleAPIのスコープとは?



GoogleAPIスコープって何?



「アプリがGoogleのどの機能にアクセスできるか」を決めるルールです
Google API のスコープ は、アプリケーションが Google のリソースやデータにアクセスする際の権限の範囲を示すものです。スコープを指定することで、アプリケーションがどの範囲までデータにアクセスできるか、ユーザーに明示し、その許可を求めることができます。



何故どの機能にアクセスできるか決める必要があるの?



アクセスできる機能を選ぶことで、以下のメリットがあります!
GoogleAPIスコープを指定するメリット
- プライバシー保護:必要ない情報を見られない
- セキュリティ強化:アプリが勝手に変更できない
- 信頼性アップ:ユーザーが安心して使える
もし「全部アクセスOK!」みたいなアプリにすると・・・
- メールも見られる
- カレンダーも変更される
- スプレッドシートも削除される



怖いですよね?なので最低限必要な機能だけ許可しましょう



APIスコープの指定はセキュリティの観点で重要なんですね!
スプレッドシートのGASを実行する際に必要なスコープ例



でも必要最低限のスコープがどれなのか分からないよ?



スプレッドシートのGASを実行する場合、以下のスコープが必要です
- https://www.googleapis.com/auth/script.external_request
- https://www.googleapis.com/auth/drive
- https://www.googleapis.com/auth/spreadsheets



これでスプレッドシートのGASを安全に動かせそうです!
上記以外にも様々な種類のスコープがあります。
代表的なスコープとその役割をいくつか紹介します。
1. Google Drive API
アプリケーションがGoogleDriveにアクセスする際の権限を管理します。
https://www.googleapis.com/auth/drive
Google Drive の全てのファイルに対する読み書きアクセス。
ユーザーのすべてのファイルとフォルダにフルアクセスできるため、慎重に利用する必要があります。https://www.googleapis.com/auth/drive.file
アプリケーションが作成または特定のユーザーが選択したファイルのみにアクセスするためのスコープ。
ユーザーが許可したファイルだけにアクセスできるので、よりセキュアです。https://www.googleapis.com/auth/drive.readonly
読み取り専用で Google Drive にアクセスするスコープ。
ユーザーのファイルを閲覧のみでき、編集はできません。
2. Google Calendar API
アプリケーションがカレンダー情報にアクセスする際の権限を管理します。
https://www.googleapis.com/auth/calendar
カレンダーの全てのイベントに対する読み書きアクセス。
イベントの作成、更新、削除も可能です。https://www.googleapis.com/auth/calendar.readonly
カレンダーイベントの読み取りのみを許可するスコープ。
カレンダー情報の閲覧のみでき、編集はできません。
3. Gmail API
Gmail メッセージや設定にアクセスする際に使われます。
https://www.googleapis.com/auth/gmail.readonly
Gmail のメッセージに対して読み取り専用のアクセス権を付与するスコープ。
メールの閲覧は可能ですが、操作や削除はできません。https://www.googleapis.com/auth/gmail.send
メールの送信のみを許可するスコープ。
メッセージ作成や送信に使用できますが、受信トレイなどの内容にはアクセスできません。https://www.googleapis.com/auth/gmail.modify
メッセージの読み取り・作成・変更が可能なスコープ。
ラベルの付与や削除、メッセージの削除なども行えます。
4. Google Sheets API
スプレッドシートにアクセスする際に使用されます。
https://www.googleapis.com/auth/spreadsheets
スプレッドシートに対する読み書きのアクセスを許可するスコープ。
セルの値を変更したり、シートにデータを入力できます。https://www.googleapis.com/auth/spreadsheets.readonly
スプレッドシートの内容を読み取るだけのアクセス権を付与するスコープ。内容の変更はできません。
5. Google Apps Script API
GASでGoogleサービスや外部リソースにアクセスする際に、必要な権限を管理します。
https://www.googleapis.com/auth/script.deploy
Google Apps Script のプロジェクトをデプロイするために必要な権限を提供するスコープです。https://www.googleapis.com/auth/script.external_request
Google Apps Script から外部サーバーや API に対して HTTP リクエストを送信するための権限を提供するスコープです。
スプレッドシートのGASを実行する場合は、以下の3つのスコープが必要です。
6. Google Contacts API
ユーザーの連絡先情報にアクセスするための権限を管理します。
https://www.googleapis.com/auth/contacts
連絡先情報の読み取りと変更が可能なスコープ。
ユーザーの連絡先を取得したり、新しい連絡先を追加したりできます。https://www.googleapis.com/auth/contacts.readonly
連絡先の読み取り専用のスコープ。連絡先情報を参照するのみで、編集は行えません。
7. Userinfo API (Google+ API の代替)
Googleアカウント情報(プロファイル)へのアクセス権限を管理します。
https://www.googleapis.com/auth/userinfo.profile
ユーザーの公開プロファイル情報(名前、プロフィール写真など)にアクセスするスコープです。https://www.googleapis.com/auth/userinfo.email
ユーザーのメールアドレスにアクセスするスコープです。



手順は以上です!お疲れさまでした



無事にアクセス/リフレッシュトークンを取得できました!



ここで取得したリフレッシュトークンを使って、アクセストークンを取得し、外部アプリケーションからGASを実行しましょう
まとめ
いかがでしたでしょうか。
アクセストークンとリフレッシュトークンを取得できたら、外部アプリケーションからGASを実行する事ができます。
UipathでGASを実行したい場合は、以下の記事を参考にしてください。
コメント