PowerShell

[PowerShell]Google APIのアクセストークンを取得する

Power Automate Desktop(PAD)でGoogle ドライブにファイルをアップロードするフローを作成したいのですが、パソコン版 Google ドライブは使用したことが無いのでGoogle Drive APIを使うことにします。

今回はその前段階として、APIを呼び出すために必要なアクセストークンをPowerShellで取得してみます。

事前準備

APIを呼び出す際にクライアントIDとクライアントシークレットが必要になるため、下記記事を参考にして事前に準備しておきます。
数年前の記事で、いまとは一部内容が異なっている部分がありますが、大まかな作業は変わっていません。

今回はアプリケーションの種類を「デスクトップ アプリ」とし、API ライブラリからGoogle Drive APIを有効にしておきました。

.NET用ライブラリの準備

簡単にアクセストークンを取得できるライブラリ(実行するのに必要なものも含む)がNugetで公開されているので、事前にインストールしておきます。

  1. Google.Apis.dll
  2. Google.Apis.Core.dll
  3. Google.Apis.Auth.dll
  4. Newtonsoft.Json.dll

インストール方法は色々ありますが、私はお手軽なコマンドラインを使用することが多いです。

Google APIのアクセストークンを取得するPowerShellスクリプト

準備ができたらいよいよスクリプトを実行します。
コード内のクライアントIDとクライアントシークレットは上記手順で取得したものに置き換えてください。

[void][Reflection.Assembly]::LoadFile("C:\System\Lib\Newtonsoft.Json.dll")
[void][Reflection.Assembly]::LoadFile("C:\System\Lib\Google.Apis.dll")
[void][Reflection.Assembly]::LoadFile("C:\System\Lib\Google.Apis.Core.dll")
[void][Reflection.Assembly]::LoadFile("C:\System\Lib\Google.Apis.Auth.dll")
$client_secrets = New-Object Google.Apis.Auth.OAuth2.ClientSecrets
$client_secrets.ClientId = "(クライアントID)"
$client_secrets.ClientSecret = "(クライアントシークレット)"
[String[]]$scopes = @("https://www.googleapis.com/auth/drive")
$fds = New-Object Google.Apis.Util.Store.FileDataStore("C:\wk\GoogleAPI\token.json", $true)
$gwab = [Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker]::AuthorizeAsync($client_secrets, $scopes, "user", [System.Threading.CancellationToken]::None, $fds)
$res = $gwab.Result

上記コードを実行すると、問題が無ければログイン画面が表示されるので、ログインと承認を行います。

無事に承認が行われると、FileDataStoreのコンストラクタで指定したパス(上記コードでは「C:\wk\GoogleAPI\token.json」)にアクセストークンやリフレッシュトークンが書かれたJSONファイルが保存されます。

上記コードのようにクライアントIDとクライアントシークレットをハードコーディングしたくない場合は、下記ページにあるようにプロジェクトページからダウンロードできるclient_secrets.jsonファイルをFileStreamで読み込んで使用します。

関連記事

参考Webサイト

[Power Automate Desktop]タブ区切りの文字列を出力する前のページ

[Power Automate Desktop]Google APIのアクセストークンを取得するフロー次のページ

関連記事

  1. Google関連

    [Google Apps Script]スクリプト エディタで使えるショートカットキー一覧

    スクリプト エディタで使用できるショートカットキーをまとめてみました。…

  2. Google関連

    [Google Apps Script]マクロの記録のショートカット情報の保存先

    Google スプレッドシートには、Web版ExcelのOffice …

  3. PowerShell

    [PowerShell]メール送信用関数

    PowerShellを使ってメール送信する機会が増えてきたので、処理を…

  4. Office関連

    Gmail APIを使ってメール送信するVBAマクロ

    「「Gmail API」β版公開、連動アプリ開発を支援」にもあるように…

  5. Google関連

    [Google Apps Script]メールからMessage-IDヘッダーを取得する

    はけた(@excelspeedup)氏のツイートで、GASでメールのM…

  6. Google関連

    Google Sheets API v4が登場しました。

    「Google Apps Developer Blog: New wa…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP