MENU
目次

GASでアクセストークン/リフレッシュトークンを取得する方法【GoogleCloudPlatform】

この記事では

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

あわせて読みたい
簡単3STEP!アクセストークン/リフレッシュトークンの取得手順【GoogleCloudConsoleでのOAuth2.0認証】 この記事ではサルでも分かるように解説します リフレッシュトークンやアクセストークンの違いが分かる リフレッシュトークンやアクセストークンを取得できる よくあるエ...
目次

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

迷える子羊

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

現役エンジニア

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

現役エンジニア

ただし、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をコピーする例
ウェブアプリURLをコピーしよう
ウェブアプリURLをコピーする例
ウェブアプリURLをコピーしよう

認証情報にURLを追加

4. GCPプロジェクト側の、リダイレクトURLにもウェブアプリURLを設定しよう。

GoogleCloudPlatformにて作成した認証情報を開いて、承認済みのリダイレクトURIにデプロイしたアプリのURLをコピペしてください。

承認済みのリダイレクトURIにデプロイしたアプリのURLをコピペ

補足② 手順6:クライアント/シークレットIDについて

6. クライアントID、クライアントシークレット欄に、GCPプロジェクトで取得したものを設定しよう。

クライアントID/クライアントシークレットはGoogleCloudPlatformにて取得してください。

GoogleCloudPlatformでクライアントIDを取得する
クライアントIDを取得

クライアント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を実行したい場合は、以下の記事を参考にしてください。

Ueda
フリーランスエンジニア
RPAエンジニアです。
UipathやVBAを使用した開発を得意としています。優れた可読性と効率的な設計を併せ持つRPA開発を心がけています。
RPA初心者向けの教育経験多数あり。RPAの開発サポートも承ります。

Wordpressを用いたHP制作のお仕事も経験があります。本サイトもWordpressを用いて制作しております。

ペットのチワプーと暮らしてます。
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次