アクセストークン/リフレッシュトークンとは?
アクセストークンとリフレッシュトークンは、ウェブサービスに「このユーザーは認証済みだよ」と教えるためのデジタルな「鍵」のようなものです。
ただし、2つのトークンには少し役割の違いがあります。
項目 | アクセストークン | リフレッシュトークン |
---|---|---|
役割 | 特定のアプリやサービスにアクセスするための鍵 | 新しいアクセストークンをもらうための鍵 |
期限 | 時間が経つと使えなくなる(通常1時間程度) | 長期間使える |
例えば、自動販売機で飲み物を買う場面を想像してみましょう。
アクセストークンが「飲み物を買うためのチケット」だとすると、このチケットは使える時間が短く、1回使ったら無効になります。
でもリフレッシュトークンを持っていると、チケットが期限切れになったときでも、新しいチケットをもらえるので、何度も飲み物を買えるという感じです。
この2つのおかげで、安全かつスムーズにアプリを使い続けられるようになっています。
公式ドキュメント
GASでアクセス/リフレッシュトークンを取得する
以下のサイトを参考にアクセストークン/リフレッシュトークンを取得してください。
少しわかりにくい点があると思うので、本記事にて補足説明します。

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


認証情報にURLを追加
カスタマイズ手順①にて作成した認証情報を開いて、承認済みのリダイレクトURIにデプロイしたアプリのURLをコピペしてください。

補足② 手順6:クライアント/シークレットIDについて
クライアントID/クライアントシークレットはGoogleCloudPlatformにて取得してください。
クライアントID/クライアントシークレットを未作成の場合は、以下のサイトを参考に認証情報を作成ください。


補足③ 手順7:必要なGoogleAPIスコープについて
GoogleAPIのスコープとは?
Google API のスコープ は、アプリケーションが Google のリソースやデータにアクセスする際の権限の範囲を示すものです。スコープを指定することで、アプリケーションがどの範囲までデータにアクセスできるか、ユーザーに明示し、その許可を求めることができます。
スプレッドシートのGASを実行する際に必要なスコープ例
GoogleスプレッドシートのGASを実行する場合、以下の3つのスコープが必要です。
https://www.googleapis.com/auth/script.external_request
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/spreadsheets
上記以外にも様々な種類のスコープがあります。
代表的なスコープとその役割をいくつか紹介します。
1. Google Drive API
Google Drive の API スコープは、アプリケーションが Google Drive 内のファイルやフォルダにアクセスする際の権限を管理します。
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
Google Calendar API スコープは、アプリケーションがカレンダー情報にアクセスする際の権限を管理します。
https://www.googleapis.com/auth/calendar
カレンダーの全てのイベントに対する読み書きアクセス。
イベントの作成、更新、削除も可能です。https://www.googleapis.com/auth/calendar.readonly
カレンダーイベントの読み取りのみを許可するスコープ。
カレンダー情報の閲覧のみでき、編集はできません。
3. Gmail API
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
Google Sheets の API スコープは、スプレッドシートにアクセスする際に使用されます。
https://www.googleapis.com/auth/spreadsheets
スプレッドシートに対する読み書きのアクセスを許可するスコープ。
セルの値を変更したり、シートにデータを入力できます。https://www.googleapis.com/auth/spreadsheets.readonly
スプレッドシートの内容を読み取るだけのアクセス権を付与するスコープ。内容の変更はできません。
5. Google Apps Script API
Google Apps Script API のスコープは、Google Apps Script を使用して Google サービスや外部のリソースにアクセスする際に必要な権限を管理します。Google Apps Script では、Google の各種サービスや外部 API を操作するために、必要な権限を指定するスコープを設定することが求められます。
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
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を実行する事ができます。
UipathでGASを実行したい場合は、以下の記事を参考にしてください。
コメント