共用方式為


使用Google服務進行驗證

如果您的腳本使用Google雲端硬碟、工作表和郵件等Google服務,您需要取得認證。 有幾個選項可用來取得認證:

  • 選項 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 小時內到期,所以您必須每小時重複這些步驟。

選項 2 - 從 Google OAuth 遊樂場取得重新整理令牌

  1. 移至Google開發人員控制台 API 儀錶板
  2. 取 [建立專案 ] 以建立新專案,或選取現有的專案
    1. 如果建立新專案,請在 [項目名稱] 中輸入項目的 名稱。 例如,腳本。
    2. 選取 [建立]
  3. 儀錶板上,選 取 [啟用 API 和服務]
  4. 在搜尋方塊中,輸入 工作表 ,然後選取 [Google Sheets API]。 然後,選取 [ 啟用]
  5. 返回 至儀錶板 (選取 [服務) & API],然後針對Google雲端硬碟 API 重複步驟 3 和 4
  6. 返回 至儀錶板 (選取 & Services) 的 API,然後針對 Gmail API 重複步驟 3 和 4
  7. [儀錶板] 上,選取左側瀏覽窗格中的 [ 認證 ],然後選 取 [設定同意畫面]。 如果要求選取 使用者類型,請選取 [外部],然後選取 [ 建立]
  8. 在 [應用程式名稱] 欄位中輸入您的應用程式 名稱 (例如, 腳本客戶 端) ,然後在要求的欄位中輸入您的電子郵件,然後選取 [儲存 後繼續]
  9. 取 [新增或移除範圍],選取 []。/auth/drive../auth/gmail.send,然後選取 [更新]
  10. 選取 [儲存後繼續]
  11. 選取 [新增使用者],輸入您的 Google 電子郵件,然後選取 [新增]
  12. [儀錶板] 上,選取左側瀏覽窗格中的 [ 認證 ],然後選取 [ 建立認證 ],然後選取 [Oauth 用戶端標識符]
  13. 取 [Web 應用程式 應用程式類型]。 接下來,在 [名稱] 欄位中輸入如文稿 Web 應用程式的名稱。 然後,將 新 https://developers.google.com/oauthplayground 增至 [授權的重新導向 URI]。 最後,選取 [ 建立]
  14. 複製您的用戶端識別碼和客戶端密碼以在步驟 18、19 和 24 中使用,然後選取 [確定]
  15. 移至 Google OAuth遊樂場
  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] ,並遵循提示以提供同意

注意事項

在遊樂場中授權 API 時,如果您看到對話框顯示「此應用程式未驗證」,請選取 [ 階],然後移 至 [應用程式名稱], (不安全)

  1. 授權 API 之後,選取 令牌的 Exchange 授權碼
  2. 從重新 整理令牌 複製令牌以在步驟 24 中使用
  3. 在探索 未經核准的廣告等解決方案中,存取Google服務,將認證物件的 clientIdclientSecretrefreshToken 欄位設定為您在步驟 13 和 22 中收到的值。

選項 3 - 使用 PowerShell 腳本取得重新整理令牌

  1. 移至Google開發人員控制台 API 儀錶板
  2. 取 [建立專案 ] 以建立新專案,或選取現有的專案
    1. 如果建立新專案,請在 [項目名稱] 中輸入項目的 名稱。 例如,腳本。
    2. 選取 [建立]
  3. 儀錶板上,選 取 [啟用 API 和服務]
  4. 在搜尋方塊中,輸入 工作表 ,然後選取 [Google Sheets API]。 然後,選取 [ 啟用]
  5. 返回 至儀錶板 (選取 [服務) & API],然後針對Google雲端硬碟 API 重複步驟 3 和 4
  6. 返回 至儀錶板 (選取 & Services) 的 API,然後針對 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 按鈕>+r) 輸入下列 Windows Run 命令<:

cmd.exe

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

powershell.exe -File .\GetTokens.ps1

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

複製授與碼,並在提示字元的控制台視窗中輸入它。 PowerShell 腳本接著會傳回重新整理令牌。 複製重新整理令牌。 您應該將重新整理令牌視為密碼;如果有人擁有它,他們就可以存取您的資源。

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