Guía de inicio rápido

En los guías de inicio rápido, se explica cómo configurar y ejecutar una app que llama a una API de Google Workspace.

Las guías de inicio rápido de Google Workspace usan las bibliotecas cliente de la API para controlar algunos detalles del flujo de autenticación y autorización. Te recomendamos que uses las bibliotecas cliente para tus propias apps. En esta guía de inicio rápido, se usa un enfoque de autenticación simplificado que es adecuado para un entorno de prueba. En el caso de un entorno de producción, te recomendamos que aprendas sobre la autenticación y autorización antes de elegir las credenciales de acceso adecuadas para tu app.

Crea una aplicación de línea de comandos de Go que realice solicitudes a la API de Reseller.

Objetivos

  • Configura el entorno.
  • Configura la muestra.
  • Ejecuta la muestra.

Requisitos previos

  • Una instancia de dominio de distribuidor de Google.
  • Un acuerdo de socio de Google Workspace completamente ejecutado

Configura tu entorno

Para completar esta guía de inicio rápido, configura tu entorno.

Habilita la API

Antes de usar las APIs de Google, debes activarlas en un proyecto de Google Cloud. Puedes activar una o más APIs en un solo proyecto de Google Cloud.

Si usas un proyecto de Google Cloud nuevo para completar esta guía de inicio rápido, configura la pantalla de consentimiento de OAuth. Si ya completaste este paso para tu proyecto de Cloud, ve a la siguiente sección.

  1. En la consola de Google Cloud, ve a Menú > > Desarrollo de la marca.

    Ve a Desarrollo de la marca

  2. Si ya configuraste , puedes configurar la siguiente configuración de la pantalla de consentimiento de OAuth en Desarrollo de la marca, Público y Acceso a los datos. Si ves un mensaje que dice aún no se configuró, haz clic en Comenzar:
    1. En Información de la app, en Nombre de la app, ingresa un nombre para la app.
    2. En Correo electrónico de asistencia del usuario, elige una dirección de correo electrónico de asistencia para que los usuarios se comuniquen contigo si tienen preguntas sobre su consentimiento.
    3. Haz clic en Siguiente.
    4. En Público, selecciona Interno.
    5. Haz clic en Siguiente.
    6. En Información de contacto, ingresa una dirección de correo electrónico a la que se te puedan enviar notificaciones sobre cualquier cambio en tu proyecto.
    7. Haz clic en Siguiente.
    8. En Finalizar, revisa la Política de Datos del Usuario de los Servicios de las APIs de Google y, si estás de acuerdo, selecciona Acepto la Política de Datos del Usuario de los Servicios de las APIs de Google.
    9. Haz clic en Continuar.
    10. Haz clic en Crear.
  3. Por ahora, puedes omitir agregar permisos. En el futuro, cuando crees una app para usarla fuera de tu organización de Google Workspace, debes cambiar el Tipo de usuario a Externo. Luego, agrega los permisos de autorización que requiere tu app. Para obtener más información, consulta la guía completa Configura el consentimiento de OAuth.

Autoriza credenciales para una aplicación de escritorio

Para autenticar a los usuarios finales y acceder a sus datos en tu app, debes crear uno o más IDs de cliente de OAuth 2.0. Un ID de cliente se usa con el fin de identificar una sola app para los servidores de OAuth de Google. Si tu app se ejecuta en varias plataformas, debes crear un ID de cliente independiente para cada una.
  1. En la consola de Google Cloud, ve a Menú > > Clientes.

    Ir a Clientes

  2. Haz clic en Crear cliente.
  3. Haz clic en Tipo de aplicación > App para computadoras.
  4. En el campo Nombre, escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
  5. Haz clic en Crear.

    La credencial recién creada aparecerá en "IDs de cliente de OAuth 2.0".

  6. Guarda el archivo JSON descargado como credentials.json y muévelo al directorio de trabajo.

Prepara el lugar de trabajo

  1. Cree un directorio de trabajo:

    mkdir quickstart
    
  2. Cambia al directorio de trabajo:

    cd quickstart
    
  3. Inicializa el módulo nuevo:

    go mod init quickstart
    
  4. Obtén la biblioteca cliente de Go de la API de Reseller y el paquete de OAuth2.0:

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

Configura la muestra

  1. En tu directorio de trabajo, crea un archivo llamado quickstart.go.

  2. En el archivo, pega el siguiente código:

    admin_sdk/reseller/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/option"
    	"google.golang.org/api/reseller/v1"
    )
    
    // Retrieve a token, saves the token, then returns the generated client.
    func getClient(config *oauth2.Config) *http.Client {
    	// The file token.json stores the user's access and refresh tokens, and is
    	// created automatically when the authorization flow completes for the first
    	// time.
    	tokFile := "token.json"
    	tok, err := tokenFromFile(tokFile)
    	if err != nil {
    		tok = getTokenFromWeb(config)
    		saveToken(tokFile, tok)
    	}
    	return config.Client(context.Background(), tok)
    }
    
    // Request 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(context.TODO(), 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)
    	if err != nil {
    		return nil, err
    	}
    	defer f.Close()
    	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)
    	if err != nil {
    		log.Fatalf("Unable to cache oauth token: %v", err)
    	}
    	defer f.Close()
    	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, reseller.AppsOrderScope)
    	if err != nil {
    		log.Fatalf("Unable to parse client secret file to config: %v", err)
    	}
    	client := getClient(config)
    
    	srv, err := reseller.NewService(ctx, option.WithHTTPClient(client))
    	if err != nil {
    		log.Fatalf("Unable to retrieve reseller Client %v", err)
    	}
    
    	r, err := srv.Subscriptions.List().MaxResults(10).Do()
    	if err != nil {
    		log.Fatalf("Unable to retrieve subscriptions. %v", err)
    	}
    
    	if len(r.Subscriptions) == 0 {
    		fmt.Println("No subscriptions found.")
    	} else {
    		fmt.Println("Subscriptions:")
    		for _, s := range r.Subscriptions {
    			fmt.Printf("%s (%s, %s)\n", s.CustomerId, s.SkuId, s.Plan.PlanName)
    		}
    	}
    }

Ejecuta la muestra

  1. En tu directorio de trabajo, compila y ejecuta la muestra:

    go run quickstart.go
    
  1. La primera vez que ejecutes la muestra, se te solicitará que autorices el acceso:
    1. Si aún no accediste a tu Cuenta de Google, hazlo cuando se te solicite. Si accedeste a varias cuentas, selecciona una para usarla en la autorización.
    2. Haz clic en Aceptar.

    Tu aplicación de Go se ejecuta y llama a la API de Reseller.

    La información de autorización se almacena en el sistema de archivos, por lo que la próxima vez que ejecutes el código de muestra, no se te solicitará autorización.

Próximos pasos