次の方法で共有


Google サービスでの認証

スクリプトで Google ドライブ、スプレッドシート、メールなどの Google サービスを使用している場合は、資格情報を取得する必要があります。 資格情報を取得するためのオプションがいくつかあります。

  • オプション 1 — 簡単にフォローでき、時間はかかりませんが、アクセス トークンの有効期限が切れたときに 1 時間ごとに繰り返す必要があります。
  • オプション 2 — もう少し複雑ですが、更新トークンが無効になった場合にのみ繰り返す必要があります。
  • オプション 3 — (提供された PowerShell スクリプトを使用する) もう少し複雑ですが、更新トークンが無効になった場合にのみ繰り返す必要があります。

オプション 1 - Google OAuth プレイグラウンドからアクセス トークンを取得する

  1. Google OAuth プレイグラウンドに移動する
  2. [ 独自のスコープを入力] に貼り付けます https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  3. [ API の承認] をクリックします
  4. API が承認されたら、トークンの Exchange 承認コードをクリックします
  5. 応答からaccess_tokenの値をコピーする
  6. Google サービス にアクセスする不承認の広告の検出などのソリューションでは、手順 5 でコピーしたアクセス トークンに資格情報オブジェクトの accessToken フィールドを設定します。

注:

アクセス トークンは 1 時間で期限切れになるため、これらの手順を 1 時間ごとに繰り返す必要があります。

オプション 2 - Google OAuth プレイグラウンドから更新トークンを取得する

  1. Google 開発者コンソール API ダッシュボードに移動する
  2. [ プロジェクトの作成 ] をクリックして新しいプロジェクトを作成するか、既存のプロジェクトを選択します
    1. 新しいプロジェクトを作成する場合は、[プロジェクト名] にプロジェクトの名前を入力 します。 たとえば、スクリプトです。
    2. [作成] をクリックします
  3. ダッシュボードで、[API とサービスを有効にする] をクリックします
  4. 検索ボックスに「 シート 」と入力し、[ Google スプレッドシート API] をクリックします。 次に、[有効にする] をクリックします。
  5. ダッシュボードに戻り ( [API & サービス] をクリック) し、Google Drive API の手順 3 と 4 を繰り返します
  6. ダッシュボードに戻り ( [API & サービス] をクリックします)、Gmail API の手順 3 と 4 を繰り返します
  7. ダッシュボードで、左側ナビゲーション ウィンドウで [資格情報] をクリックし、[同意画面の構成] をクリックします。 ユーザーの種類の選択を求められたら、[外部] を選択し、[作成] をクリックします。
  8. [アプリケーション名] フィールドにアプリケーションの名前 (スクリプト クライアントなど) を入力し、それを要求するフィールドにメールを入力し、[保存して続行] をクリックします。
  9. [スコープの追加または削除] をクリックし、[.] を選択します。/auth/drive../auth/gmail.send、 [更新] をクリックします
  10. [保存して続行] をクリックします
  11. [ユーザーの追加] をクリックし、Google メールを入力し、[追加] をクリックします。
  12. ダッシュボードで、左側ナビゲーション ウィンドウで [資格情報] をクリックし、[資格情報の作成] をクリックし、[Oauth クライアント ID] を選択します。
  13. [ Web アプリケーション アプリケーション の種類] を選択します。 次に、[名前] フィールドに Scripts Web アプリ などの 名前 を入力します。 次に、承認されたリダイレクト URIhttps://developers.google.com/oauthplaygroundを追加します。 最後に、[作成] をクリックします
  14. 手順 18、19、24 で使用するクライアント ID とクライアント シークレットをコピーし、[OK] をクリック します
  15. Google OAuth プレイグラウンドに移動する
  16. [OAuth 2.0 構成] アイコン (右上隅の歯車のように見えます) をクリックします。
  17. [ 独自の OAuth 資格情報を使用する ] ボックスをオンにします
  18. クライアント ID を OAuth クライアント ID に貼り付ける
  19. OAuth クライアント シークレットにクライアント シークレットを貼り付ける
  20. [ 独自のスコープを入力] に貼り付けます https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  21. [ API の承認] を クリックし、プロンプトに従って同意を提供します

注:

プレイグラウンドで API を承認するときに、"このアプリは検証されていません" というダイアログが表示されたら、[ 詳細設定 ] をクリックし、[ アプリ名] (unsafe) に移動します。 22. API が承認されたら、トークン 23 の Exchange 承認コードを クリックします。手順 24 24 で使用する 更新トークンからトークン をコピーします。Google サービス にアクセスする不承認の広告の検出などのソリューションでは、資格情報オブジェクトの clientIdclientSecretrefreshToken フィールドを手順 13 および 22 で受け取った値に設定します。

オプション 3 - PowerShell スクリプトを使用して更新トークンを取得する

  1. Google 開発者コンソール API ダッシュボードに移動する
  2. [ プロジェクトの作成 ] をクリックして新しいプロジェクトを作成するか、既存のプロジェクトを選択します
    1. 新しいプロジェクトを作成する場合は、[プロジェクト名] にプロジェクトの名前を入力 します。 たとえば、スクリプトです。
    2. [作成] をクリックします
  3. ダッシュボードで、[API とサービスを有効にする] をクリックします
  4. 検索ボックスに「 シート 」と入力し、[ Google スプレッドシート API] をクリックします。 次に、[有効にする] をクリックします。
  5. ダッシュボードに戻り ( [API & サービス] をクリック) し、Google Drive API の手順 3 と 4 を繰り返します
  6. ダッシュボードに戻り ( [API & サービス] をクリックします)、Gmail API の手順 3 と 4 を繰り返します
  7. ダッシュボードで、左側ナビゲーション ウィンドウで [資格情報] をクリックし、[同意画面の構成] をクリックします。 ユーザーの種類の選択を求められたら、[外部] を選択し、[作成] をクリックします。
  8. [アプリケーション名] フィールドにアプリケーションの名前 (スクリプト クライアントなど) を入力し、それを要求するフィールドにメールを入力し、[保存して続行] をクリックします。
  9. [スコープの追加または削除] をクリックし、[.] を選択します。/auth/drive../auth/gmail.send、 [更新] をクリックします
  10. [保存して続行] をクリックします
  11. [ユーザーの追加] をクリックし、Google メールを入力し、[追加] をクリックします。
  12. ダッシュボードで、左側ナビゲーション ウィンドウで [資格情報] をクリックし、[資格情報の作成] をクリックし、[Oauth クライアント ID] を選択します。
  13. [デスクトップ アプリ アプリケーションの種類] を選択し、名前 (スクリプト クライアントの資格情報など) を入力し、[作成] をクリックします。
  14. 手順 15 および 16 で使用するクライアント ID とクライアント シークレットをコピーし、[OK] をクリック します
  15. PowerShell スクリプトを作成して、ユーザーの同意と更新トークンを取得します。

アクセス トークンを取得するには、更新トークンがない限り、ユーザーの同意が必要です。 ただし、スクリプトは UI コンポーネントをサポートしていないため、別の方法で同意する必要があります。 この PowerShell には、同意と更新トークンを取得するためのオプションが用意されています。

メモ帳またはお気に入りのエディターを開き、PowerShell スクリプトをエディターにコピーします。 $clientId$clientSecretを、アプリの登録時に受け取ったクライアント ID とシークレットに設定します (手順 13 を参照)。

$clientId = "your-client-id"
$clientSecret = "your-client-secret"

$scopes = "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/gmail.send"

Start-Process "https://accounts.google.com/o/oauth2/v2/auth?client_id=$clientId&scope=$([string]::Join("%20", $scopes))&access_type=offline&response_type=code&redirect_uri=urn:ietf:wg:oauth:2.0:oob"    
 
$code = Read-Host "Please enter the code"
   
$response = Invoke-WebRequest https://www.googleapis.com/oauth2/v4/token -ContentType application/x-www-form-urlencoded -Method POST -Body "client_id=$clientid&client_secret=$clientSecret&redirect_uri=urn:ietf:wg:oauth:2.0:oob&code=$code&grant_type=authorization_code"
  
Write-Output "Refresh token: " ($response.Content | ConvertFrom-Json).refresh_token 

ファイルを保存して GetTokens.ps1 名前を付けます (名前は任意ですが、拡張子は .ps1 する必要があります)。

次に、コンソール ウィンドウを開きます。 Microsoft Windows でコンソール ウィンドウを開くには、次の Windows Run コマンド (<Windows ボタン> +r) を入力します。

cmd.exe

コマンド プロンプトで、GetTokens.ps1 保存したフォルダーに移動し、次のコマンドを入力します。

powershell.exe -File .\GetTokens.ps1

PowerShell スクリプトが正常に実行されると、Google 資格情報を入力するブラウザー セッションが開始されます。 同意すると、Web ページに許可コードが含まれます (「このコードをコピーしてください...」を参照してください)。

許可コードをコピーし、プロンプトのコンソール ウィンドウに入力します。 その後、PowerShell スクリプトは更新トークンを返します。 更新トークンをコピーします。 更新トークンは、パスワードと同様に扱う必要があります。誰かがそれを手に入れると、リソースにアクセスできます。

  1. Google サービス にアクセスする不承認の広告の検出などのソリューションでは、資格情報オブジェクトの clientIdclientSecretrefreshToken フィールドを手順 13 と 14 で受け取った値に設定します。