Go 快速入門導覽課程
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
建立 Go 指令列應用程式,向 Google Slides API 發出要求。
快速入門指南會說明如何設定及執行呼叫 Google Workspace API 的應用程式。本快速入門導覽課程會使用簡化的驗證方法,適用於測試環境。在正式環境中,建議您先瞭解驗證和授權,再選擇適合應用程式的存取憑證。
本快速入門指南會使用 Google Workspace 建議的 API 用戶端程式庫,處理驗證和授權流程的部分詳細資料。
目標
必要條件
設定環境
如要完成本快速入門導覽課程,請設定環境。
啟用 API
使用 Google API 前,請先在 Google Cloud 專案中啟用這些 API。您可以在單一 Google Cloud 專案中啟用一或多個 API。
如果您使用新的 Google Cloud 專案完成這項快速入門導覽課程,請設定 OAuth 同意畫面。如果已為 Cloud 專案完成這個步驟,請跳至下一節。
-
在 Google Cloud 控制台中,依序前往「選單」menu
> Google Auth platform
>「品牌」。
前往「品牌宣傳」
-
如果您已設定 Google Auth platform,可以在「品牌」、「目標對象」和「資料存取權」中設定下列 OAuth 同意畫面設定。如果看到「尚未設定」Google Auth platform 訊息,請按一下「開始使用」:
- 在「App Information」(應用程式資訊) 下方的「App name」(應用程式名稱) 欄位中,輸入應用程式名稱。
-
在「使用者支援電子郵件」中,選擇支援電子郵件地址,方便使用者在同意聲明方面有任何疑問時與您聯絡。
-
點選 [下一步]。
-
在「目標對象」下方,選取「內部」。
-
點選 [下一步]。
-
在「聯絡資訊」下方,輸入可接收專案異動通知的電子郵件地址。
-
點選 [下一步]。
-
在「完成」部分,請詳閱《Google API 服務:使用者資料政策》,然後選取「我同意《Google API 服務:使用者資料政策》」。
-
按一下 [繼續]。
-
按一下「Create」(建立)。
-
目前可以略過新增範圍。
日後為 Google Workspace 機構以外的使用者建立應用程式時,請務必將「使用者類型」變更為「外部」。然後新增應用程式需要的授權範圍。詳情請參閱完整的「設定 OAuth 同意畫面」指南。
授權電腦應用程式的憑證
如要驗證使用者身分並存取應用程式中的使用者資料,您需要建立一或多個 OAuth 2.0 用戶端 ID。Google 的 OAuth 伺服器會使用用戶端 ID 來識別個別應用程式。如果您的應用程式在多個平台上執行,則必須為每個平台分別建立用戶端 ID。
-
前往 Google Cloud 控制台,依序點選「選單」圖示 menu
> Google Auth platform
>「用戶端」。
前往「客戶」
- 按一下「建立用戶端」。
- 依序點選「應用程式類型」>「電腦應用程式」。
- 在「Name」(名稱) 欄位中,輸入憑證名稱。這個名稱只會顯示在 Google Cloud 控制台中。
- 按一下 [Create] (建立)。
新建立的憑證會顯示在「OAuth 2.0 用戶端 ID」下方。
- 將下載的 JSON 檔案儲存為
credentials.json
,然後將該檔案移至工作目錄。
準備工作區
建立工作目錄:
mkdir quickstart
變更為工作目錄:
cd quickstart
初始化新模組:
go mod init quickstart
取得 Google Slides API Go 用戶端程式庫和 OAuth2.0 套件:
go get google.golang.org/api/slides/v1
go get golang.org/x/oauth2/google
設定範例
在工作目錄中,建立名為 quickstart.go
的檔案。
在檔案中貼上下列程式碼:
執行範例
在工作目錄中,建構並執行範例:
go run quickstart.go
-
第一次執行範例時,系統會提示您授權存取權:
-
如果尚未登入 Google 帳戶,系統會提示你登入。如果您登入了多個帳戶,請選取要用於授權的帳戶。
- 按一下 [接受]。
您的 Go 應用程式會執行並呼叫 Google 簡報 API。
授權資訊會儲存在檔案系統中,因此下次執行範例程式碼時,系統不會提示您授權。
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-29 (世界標準時間)。
[null,null,["上次更新時間:2025-08-29 (世界標準時間)。"],[],[],null,["Create a Go command-line application that makes requests to the\nGoogle Slides API.\n\nQuickstarts explain how to set up and run an app that calls a\nGoogle Workspace API. This quickstart uses a\nsimplified authentication approach that is appropriate for a testing\nenvironment. For a production environment, we recommend learning about\n[authentication and authorization](/workspace/guides/auth-overview)\nbefore\n[choosing the access credentials](/workspace/guides/create-credentials#choose_the_access_credential_that_is_right_for_you)\nthat are appropriate for your app.\n\nThis quickstart uses Google Workspace's recommended API client libraries\nto handle some details of the authentication and authorization flow.\n\nObjectives\n\n- Set up your environment.\n- Set up the sample.\n- Run the sample.\n\nPrerequisites\n\n- Latest version of [Go](https://golang.org/).\n- Latest version of [Git](https://git-scm.com/).\n- [A Google Cloud project](/workspace/guides/create-project).\n\n\u003c!-- --\u003e\n\n- A Google Account.\n\nSet up your environment\n\nTo complete this quickstart, set up your environment.\n\nEnable the API Before using Google APIs, you need to turn them on in a Google Cloud project. You can turn on one or more APIs in a single Google Cloud project.\n\n- In the Google Cloud console, enable the Google Slides API.\n\n [Enable the API](https://console.cloud.google.com/flows/enableapi?apiid=slides.googleapis.com)\n\nConfigure the OAuth consent screen\n\nIf you're using a new Google Cloud project to complete this quickstart, configure\nthe OAuth consent screen. If you've already\ncompleted this step for your Cloud project, skip to the next section.\n\n1. In the Google Cloud console, go to Menu menu \\\u003e **Google Auth platform** \\\u003e **Branding** .\n\n [Go to Branding](https://console.cloud.google.com/auth/branding)\n2. If you have already configured the Google Auth platform, you can configure the following OAuth Consent Screen settings in [Branding](https://console.cloud.google.com/auth/branding), [Audience](https://console.cloud.google.com/auth/audience), and [Data Access](https://console.cloud.google.com/auth/scopes). If you see a message that says **Google Auth platform not configured yet** , click **Get Started**:\n 1. Under **App Information** , in **App name**, enter a name for the app.\n 2. In **User support email**, choose a support email address where users can contact you if they have questions about their consent.\n 3. Click **Next**.\n 4. Under **Audience** , select **Internal**.\n 5. Click **Next**.\n 6. Under **Contact Information** , enter an **Email address** where you can be notified about any changes to your project.\n 7. Click **Next**.\n 8. Under **Finish** , review the [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy) and if you agree, select **I agree to the Google API Services: User Data Policy**.\n 9. Click **Continue**.\n 10. Click **Create**.\n3. For now, you can skip adding scopes. In the future, when you create an app for use outside of your Google Workspace organization, you must change the **User type** to **External** . Then add the authorization scopes that your app requires. To learn more, see the full [Configure OAuth consent](/workspace/guides/configure-oauth-consent) guide.\n\nAuthorize credentials for a desktop application To authenticate end users and access user data in your app, you need to create one or more OAuth 2.0 Client IDs. A client ID is used to identify a single app to Google's OAuth servers. If your app runs on multiple platforms, you must create a separate client ID for each platform.\n\n1. In the Google Cloud console, go to Menu menu \\\u003e **Google Auth platform** \\\u003e **Clients** .\n\n [Go to Clients](https://console.cloud.google.com/auth/clients)\n2. Click **Create Client**.\n3. Click **Application type** \\\u003e **Desktop app**.\n4. In the **Name** field, type a name for the credential. This name is only shown in the Google Cloud console.\n5. Click **Create** .\n\n\n The newly created credential appears under \"OAuth 2.0 Client IDs.\"\n6. Save the downloaded JSON file as `credentials.json`, and move the file to your working directory.\n\nPrepare the workspace\n\n1. Create a working directory:\n\n ```\n mkdir quickstart\n ```\n2. Change to the working directory:\n\n ```\n cd quickstart\n ```\n3. Initialize the new module:\n\n ```\n go mod init quickstart\n ```\n4. Get the Google Slides API Go client library and OAuth2.0 package:\n\n ```\n go get google.golang.org/api/slides/v1\n go get golang.org/x/oauth2/google\n ```\n\nSet up the sample\n\n1. In your working directory, create a file named `quickstart.go`.\n\n2. In the file, paste the following code:\n\n\n slides/quickstart/quickstart.go \n [View on GitHub](https://github.com/googleworkspace/go-samples/blob/main/slides/quickstart/quickstart.go) \n\n ```go\n package main\n\n import (\n \t\"context\"\n \t\"encoding/json\"\n \t\"fmt\"\n \t\"log\"\n \t\"net/http\"\n \t\"os\"\n\n \t\"golang.org/x/oauth2\"\n \t\"golang.org/x/oauth2/google\"\n \t\"google.golang.org/api/option\"\n \t\"google.golang.org/api/slides/v1\"\n )\n\n // Retrieve a token, saves the token, then returns the generated client.\n func getClient(config *oauth2.Config) *http.Client {\n \t// The file token.json stores the user's access and refresh tokens, and is\n \t// created automatically when the authorization flow completes for the first\n \t// time.\n \ttokFile := \"token.json\"\n \ttok, err := tokenFromFile(tokFile)\n \tif err != nil {\n \t\ttok = getTokenFromWeb(config)\n \t\tsaveToken(tokFile, tok)\n \t}\n \treturn config.Client(context.Background(), tok)\n }\n\n // Request a token from the web, then returns the retrieved token.\n func getTokenFromWeb(config *oauth2.Config) *oauth2.Token {\n \tauthURL := config.AuthCodeURL(\"state-token\", oauth2.AccessTypeOffline)\n \tfmt.Printf(\"Go to the following link in your browser then type the \"+\n \t\t\"authorization code: \\n%v\\n\", authURL)\n\n \tvar authCode string\n \tif _, err := fmt.Scan(&authCode); err != nil {\n \t\tlog.Fatalf(\"Unable to read authorization code: %v\", err)\n \t}\n\n \ttok, err := config.Exchange(context.TODO(), authCode)\n \tif err != nil {\n \t\tlog.Fatalf(\"Unable to retrieve token from web: %v\", err)\n \t}\n \treturn tok\n }\n\n // Retrieves a token from a local file.\n func tokenFromFile(file string) (*oauth2.Token, error) {\n \tf, err := os.Open(file)\n \tif err != nil {\n \t\treturn nil, err\n \t}\n \tdefer f.Close()\n \ttok := &oauth2.Token{}\n \terr = json.NewDecoder(f).Decode(tok)\n \treturn tok, err\n }\n\n // Saves a token to a file path.\n func saveToken(path string, token *oauth2.Token) {\n \tfmt.Printf(\"Saving credential file to: %s\\n\", path)\n \tf, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0600)\n \tif err != nil {\n \t\tlog.Fatalf(\"Unable to cache oauth token: %v\", err)\n \t}\n \tdefer f.Close()\n \tjson.NewEncoder(f).Encode(token)\n }\n\n func main() {\n \tctx := context.Background()\n \tb, err := os.ReadFile(\"credentials.json\")\n \tif err != nil {\n \t\tlog.Fatalf(\"Unable to read client secret file: %v\", err)\n \t}\n\n \t// If modifying these scopes, delete your previously saved token.json.\n \tconfig, err := google.ConfigFromJSON(b, \"https://www.googleapis.com/auth/presentations.readonly\")\n \tif err != nil {\n \t\tlog.Fatalf(\"Unable to parse client secret file to config: %v\", err)\n \t}\n \tclient := getClient(config)\n\n \tsrv, err := slides.NewService(ctx, option.WithHTTPClient(client))\n \tif err != nil {\n \t\tlog.Fatalf(\"Unable to retrieve Slides client: %v\", err)\n \t}\n\n \t// Prints the number of slides and elements in a sample presentation:\n \t// https://docs.google.com/presentation/d/1EAYk18WDjIG-zp_0vLm3CsfQh_i8eXc67Jo2O9C6Vuc/edit\n \tpresentationId := \"1EAYk18WDjIG-zp_0vLm3CsfQh_i8eXc67Jo2O9C6Vuc\"\n \tpresentation, err := srv.Presentations.Get(presentationId).Do()\n \tif err != nil {\n \t\tlog.Fatalf(\"Unable to retrieve data from presentation: %v\", err)\n \t}\n\n \tfmt.Printf(\"The presentation contains %d slides:\\n\", len(presentation.Slides))\n \tfor i, slide := range presentation.Slides {\n \t\tfmt.Printf(\"- Slide #%d contains %d elements.\\n\", (i + 1),\n \t\t\tlen(slide.PageElements))\n \t}\n }\n ```\n\n \u003cbr /\u003e\n\nRun the sample\n\n1. In your working directory, build and run the sample:\n\n ```\n go run quickstart.go\n ```\n\n\u003c!-- --\u003e\n\n2. The first time you run the sample, it prompts you to authorize access:\n 1. If you're not already signed in to your Google Account, sign in when prompted. If you're signed in to multiple accounts, select one account to use for authorization.\n 2. Click **Accept**.\n\n\n Your Go application runs and calls the Google Slides API.\n\n\n Authorization information is stored in the file system, so the next time you run the sample\n code, you aren't prompted for authorization.\n\nNext steps\n\n- [Try the Google Workspace APIs in the APIs explorer](/workspace/explore)\n - [Troubleshoot authentication and authorization issues](/workspace/slides/api/troubleshoot-authentication-authorization)\n - [Slides API reference documentation](/workspace/slides/reference/rest)\n - [`google-api-go-client` section of GitHub](https://github.com/google/google-api-go-client)"]]