Guide de démarrage rapide pour Go

Les guides de démarrage rapide expliquent comment configurer et exécuter une application qui appelle un API Google Workspace.

Les guides de démarrage rapide de Google Workspace utilisent les bibliothèques clientes des API pour gérer certaines les détails du flux d'authentification et d'autorisation. Nous vous recommandons vous utilisez les bibliothèques clientes pour vos propres applications. Ce guide de démarrage rapide utilise une approche d'authentification simplifiée, adaptée à un test environnement. Pour un environnement de production, nous vous recommandons de vous familiariser authentification et autorisation avant Choisir les identifiants d'accès adaptés à votre application.

Créer une application de ligne de commande Go qui envoie des requêtes au API Google Docs.

Objectifs

  • configurer votre environnement ;
  • Configurez l'exemple.
  • Exécutez l'exemple.

Prérequis

  • Un compte Google.

Configurer votre environnement

Pour suivre ce guide de démarrage rapide, configurez votre environnement.

Activer l'API

Avant d'utiliser les API Google, vous devez les activer dans un projet Google Cloud. Vous pouvez activer une ou plusieurs API dans un même projet Google Cloud.
  • Dans la console Google Cloud, activez l'API Google Docs.

    Activer l'API

Si vous utilisez un nouveau projet Google Cloud pour suivre ce guide de démarrage rapide, configurez l'écran de consentement OAuth et ajoutez-vous en tant qu'utilisateur test. Si vous avez déjà avez réalisé cette étape pour votre projet Cloud, passez à la section suivante.

  1. Dans la console Google Cloud, accédez au menu . > API et Services > Écran de consentement OAuth.

    Accéder à l'écran de consentement OAuth

  2. Pour Type d'utilisateur, sélectionnez Interne, puis cliquez sur Créer.
  3. Remplissez le formulaire d'inscription de l'application, puis cliquez sur Enregistrer et continuer.
  4. Pour l'instant, vous pouvez ignorer l'ajout de champs d'application et cliquer sur Enregistrer et continuer. Par la suite, lorsque vous créerez une application à utiliser en dehors de votre d'une organisation Google Workspace, vous devez remplacer le Type d'utilisateur par Externe, puis : ajouter les niveaux d'autorisation requis par votre application.

  5. Consultez le récapitulatif d'enregistrement de votre application. Pour y apporter des modifications, cliquez sur Modifier. Si l'application l'inscription vous semble correcte, cliquez sur Retour au tableau de bord.

Autoriser des identifiants pour une application de bureau

Pour authentifier les utilisateurs finaux et accéder aux données utilisateur dans votre application, vous devez créer un ou plusieurs ID client OAuth 2.0. Un ID client sert à identifier une application unique auprès des serveurs OAuth de Google. Si votre application s'exécute sur plusieurs plates-formes, vous devez créer un ID client distinct pour chaque plate-forme.
  1. Dans la console Google Cloud, accédez à Menu > API et Services > Identifiants.

    Accéder à "Identifiants"

  2. Cliquez sur Créer des identifiants > ID client OAuth.
  3. Cliquez sur Type d'application > Application de bureau.
  4. Dans le champ Nom, saisissez un nom pour l'identifiant. Ce nom ne s'affiche que dans la console Google Cloud.
  5. Cliquez sur Créer. L'écran "Client OAuth créé" s'affiche. Il contient l'ID et le code secret du client.
  6. Cliquez sur OK. Les nouveaux identifiants s'affichent sous ID clients OAuth 2.0.
  7. Enregistrez le fichier JSON téléchargé sous le nom credentials.json, puis déplacez le dans votre répertoire de travail.

Préparer l'espace de travail

  1. Créez un répertoire de travail :

    mkdir quickstart
    
  2. Accédez au répertoire de travail :

    cd quickstart
    
  3. Initialisez le nouveau module:

    go mod init quickstart
    
  4. Obtenez la bibliothèque cliente Go et le package OAuth2.0 de l'API Google Docs:

    go get google.golang.org/api/docs/v1
    go get golang.org/x/oauth2/google
    

Configurer l'exemple

  1. Dans votre répertoire de travail, créez un fichier nommé quickstart.go.

  2. Dans le fichier, collez le code suivant:

    docs/quickstart/quickstart.go
    package main
    
    import (
    	"context"
    	"encoding/json"
    	"fmt"
    	"log"
    	"net/http"
    	"os"
    
    	"golang.org/x/oauth2"
    	"golang.org/x/oauth2/google"
    	"google.golang.org/api/docs/v1"
    	"google.golang.org/api/option"
    )
    
    // Retrieves a token, saves the token, then returns the generated client.
    func getClient(config *oauth2.Config) *http.Client {
    	tokFile := "token.json"
    	tok, err := tokenFromFile(tokFile)
    	if err != nil {
    		tok = getTokenFromWeb(config)
    		saveToken(tokFile, tok)
    	}
    	return config.Client(context.Background(), tok)
    }
    
    // Requests a token from the web, then returns the retrieved token.
    func getTokenFromWeb(config *oauth2.Config) *oauth2.Token {
    	authURL := config.AuthCodeURL("state-token", oauth2.AccessTypeOffline)
    	fmt.Printf("Go to the following link in your browser then type the "+
    		"authorization code: \n%v\n", authURL)
    
    	var authCode string
    	if _, err := fmt.Scan(&authCode); err != nil {
    		log.Fatalf("Unable to read authorization code: %v", err)
    	}
    
    	tok, err := config.Exchange(oauth2.NoContext, authCode)
    	if err != nil {
    		log.Fatalf("Unable to retrieve token from web: %v", err)
    	}
    	return tok
    }
    
    // Retrieves a token from a local file.
    func tokenFromFile(file string) (*oauth2.Token, error) {
    	f, err := os.Open(file)
    	defer f.Close()
    	if err != nil {
    		return nil, err
    	}
    	tok := &oauth2.Token{}
    	err = json.NewDecoder(f).Decode(tok)
    	return tok, err
    }
    
    // Saves a token to a file path.
    func saveToken(path string, token *oauth2.Token) {
    	fmt.Printf("Saving credential file to: %s\n", path)
    	f, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0600)
    	defer f.Close()
    	if err != nil {
    		log.Fatalf("Unable to cache OAuth token: %v", err)
    	}
    	json.NewEncoder(f).Encode(token)
    }
    
    func main() {
    	ctx := context.Background()
    	b, err := os.ReadFile("credentials.json")
    	if err != nil {
    		log.Fatalf("Unable to read client secret file: %v", err)
    	}
    
    	// If modifying these scopes, delete your previously saved token.json.
    	config, err := google.ConfigFromJSON(b, "https://www.googleapis.com/auth/documents.readonly")
    	if err != nil {
    		log.Fatalf("Unable to parse client secret file to config: %v", err)
    	}
    	client := getClient(config)
    
    	srv, err := docs.NewService(ctx, option.WithHTTPClient(client))
    	if err != nil {
    		log.Fatalf("Unable to retrieve Docs client: %v", err)
    	}
    
    	// Prints the title of the requested doc:
    	// https://docs.google.com/document/d/195j9eDD3ccgjQRttHhJPymLJUCOUjs-jmwTrekvdjFE/edit
    	docId := "195j9eDD3ccgjQRttHhJPymLJUCOUjs-jmwTrekvdjFE"
    	doc, err := srv.Documents.Get(docId).Do()
    	if err != nil {
    		log.Fatalf("Unable to retrieve data from document: %v", err)
    	}
    	fmt.Printf("The title of the doc is: %s\n", doc.Title)
    }
    
    

Exécuter l'exemple

  1. Dans votre répertoire de travail, créez et exécutez l'exemple:

    go run quickstart.go
    
  1. La première fois que vous exécutez l'exemple, vous êtes invité à autoriser l'accès: <ph type="x-smartling-placeholder">
      </ph>
    1. Si vous n'êtes pas encore connecté à votre compte Google, connectez-vous lorsque vous y êtes invité. Si vous êtes connecté à plusieurs comptes, sélectionnez un compte à utiliser pour l'autorisation.
    2. Cliquez sur Accepter.

    Votre application Go exécute et appelle l'API Google Docs.

    Les informations d'autorisation étant stockées dans le système de fichiers, la prochaine fois que vous exécuterez l'exemple vous n'êtes pas invité à fournir d'autorisation.

Étapes suivantes