使用 Google 服務驗證

如果您的指令碼使用 Google 服務,例如 Google 雲端硬碟、試算表和郵件,則需要取得認證。 有幾個取得認證的選項:

  • 選項 1 - 易於遵循且花費較少的時間,但當存取權杖到期時,您需要每小時重複一次。
  • 選項 2 - 稍微複雜一些,但只有在重新整理權杖無效時才需要重複。
  • 選項 3 — 使用提供的 PowerShell 指令碼) (也稍微複雜一些,但您只需要在重新整理權杖無效時重複該步驟。

選項 1 - 從 Google OAuth Playground 取得存取權杖

  1. 移至 Google OAuth playground
  2. [輸入您自己的範圍] 中,將 https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  3. 選取 [ 授權 API]
  4. 授權 API 之後,選取 [交換權杖的授權碼]
  5. 複製回應中的access_token值
  6. 在存取 Google 服務的 「探索未核准廣告」之類的解決方案中,請將認證物件的 accessToken 欄位設定為步驟 5 中複製的存取權杖。

注意事項

由於存取權杖會在 1 小時後到期,因此您必須每小時重複這些步驟一次。

選項 2 - 從 Google OAuth Playground 取得重新整理權杖

  1. 移至 Google 開發人員主控台 API 儀表板
  2. 選取 建立專案 以建立新專案或選取現有專案
    1. 如果建立新專案,請在 [專案名稱] 中輸入專案名稱。 例如,指令碼。
    2. 選取 [建立]
  3. 儀表板上,選取 [啟用 API 及服務]
  4. 在搜尋方塊中,輸入 [試算表] ,然後選取 [Google 試算表 API]。 接著選取 [ 啟用]
  5. 返回至儀表板 (選取 API & Services) ,然後針對 Google 雲端硬碟 API 重複步驟 3 和 4
  6. 返回至儀表板 (選取 API & Services) ,然後針對 Gmail API 重複步驟 3 和 4
  7. 儀表板上,選取左側瀏覽窗格中的 [認證 ],然後選取 [設定同意畫面]。 如果要求選取 [使用者類型],請選取 [ 外部],然後選取 [建立]
  8. 在 [ 應用程式名稱 ] 欄位中輸入應用程式的名稱 (例如, 指令碼用戶端) ,並在要求的欄位中輸入您的電子郵件,然後選取 [儲存並繼續]
  9. 選取 [新增或移除範圍],選取 .。/auth/drive../auth/gmail.send,然後選取 [ 更新]
  10. 選取 [儲存並繼續]
  11. 選取 [新增使用者],輸入您的 Google 電子郵件,然後選取 [新增]
  12. 儀表板上,選取左側瀏覽窗格中的 [認證],然後選取 [建立認證],然後選取 [Oauth 用戶端識別碼]
  13. 選取 [Web 應用程式 應用程式類型]。 接下來,在 [名稱] 欄位中輸入名稱,例如 Scripts Web App。 然後,新增 https://developers.google.com/oauthplayground授權的重新導向 URIs。 最後,選取 [ 建立]
  14. 複製要在步驟 18、19 和 24 中使用的用戶端識別碼和用戶端密碼,然後選取 [ 確定]
  15. 移至 Google OAuth playground
  16. 選取 OAuth 2.0 設定圖示 (在右上角看起來像齒輪)
  17. 核取 [使用您自己的 OAuth 認證] 方塊
  18. 將您的用戶端識別碼貼到 OAuth 用戶端識別碼
  19. 將您的用戶端密碼貼到 OAuth 用戶端密碼
  20. [輸入您自己的範圍] 中,將 https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/gmail.send
  21. 選取 [ 授權 API], 然後依照提示提供同意

注意事項

在 Playground 中授權 API 時,如果您看到顯示「此應用程式尚未驗證」的對話方塊,請選取 [進 ],然後 移至 [應用程式名稱] (不安全的)

  1. 授權 API 之後,選取 [交換權杖的授權碼]
  2. 複製 重新整理權杖 ,以在步驟 24 中使用
  3. 在存取 Google 服務的「探索未核准廣告」之類的解決方案中,將認證物件的 、 clientSecretrefreshToken欄位clientId設定為您在步驟 13 和 22 中收到的值。

選項 3 - 使用 PowerShell 指令碼取得重新整理權杖

  1. 移至 Google 開發人員主控台 API 儀表板
  2. 選取 建立專案 以建立新專案或選取現有專案
    1. 如果建立新專案,請在 [專案名稱] 中輸入專案名稱。 例如,指令碼。
    2. 選取 [建立]
  3. 儀表板上,選取 [啟用 API 及服務]
  4. 在搜尋方塊中,輸入 [試算表] ,然後選取 [Google 試算表 API]。 接著選取 [ 啟用]
  5. 返回至儀表板 (選取 API & Services) ,然後針對 Google 雲端硬碟 API 重複步驟 3 和 4
  6. 返回至儀表板 (選取 API & Services) ,然後針對 Gmail API 重複步驟 3 和 4
  7. 儀表板上,選取左側瀏覽窗格中的 [認證 ],然後選取 [設定同意畫面]。 如果要求選取 [使用者類型],請選取 [ 外部],然後選取 [建立]
  8. 在 [ 應用程式名稱 ] 欄位中輸入應用程式的名稱 (例如, 指令碼用戶端) ,並在要求的欄位中輸入您的電子郵件,然後選取 [儲存並繼續]
  9. 選取 [新增或移除範圍],選取 .。/auth/drive../auth/gmail.send,然後選取 [ 更新]
  10. 選取 [儲存並繼續]
  11. 選取 [新增使用者],輸入您的 Google 電子郵件,然後選取 [新增]
  12. 儀表板上,選取左側瀏覽窗格中的 [認證],然後選取 [建立認證],然後選取 [Oauth 用戶端識別碼]
  13. 選取 [ 傳統型應用程式 應用程式類型],輸入名稱 (例如, 指令碼用戶端憑證) ,然後選取 [ 建立]
  14. 複製要在步驟 15 和 16 中使用的用戶端識別碼和用戶端密碼,然後選取 [ 確定]
  15. 建立 PowerShell 指令碼以取得使用者同意和重新整理權杖。

除非您有重新整理權杖,否則取得存取權杖需要使用者同意。 但由於指令碼不支援 UI 元件,因此您需要以其他方式取得同意。 此 PowerShell 提供取得同意和重新整理權杖的選項。

開啟記事本或您最愛的編輯器,然後將 PowerShell 指令碼複製到編輯器。 將 和$clientSecret設定$clientId為您註冊應用程式時收到的用戶端識別碼和密碼 (請參閱步驟 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 執行命令 (<Windows button>+r) :

cmd.exe

在命令提示字元中,瀏覽至儲存 GetTokens.ps1 的資料夾,然後輸入下列命令:

powershell.exe -File .\GetTokens.ps1

當 PowerShell 指令碼成功執行時,它會啟動瀏覽器工作階段,您可以在其中輸入您的 Google 認證。 同意之後,網頁會包含授權代碼 (請參閱請複製此代碼...) 。

複製授與碼,然後在主控台視窗中的提示中輸入。 PowerShell 指令碼接著會傳回重新整理權杖。 複製重新整理權杖。 您應該像對待密碼一樣對待重新整理權杖;如果有人掌握了它,他們就可以存取您的資源。

  1. 在存取 Google 服務的 「探索未核准廣告」之類的解決方案中,將認證物件的 clientIdclientSecretrefreshToken 欄位設定為您在步驟 13 和 14 中收到的值。