Bibliothèques clientes CTS

Cette page explique comment débuter avec les bibliothèques clientes Cloud conçues pour l'API Cloud Talent Solution. Pour en savoir plus sur les bibliothèques clientes pour les API Cloud, y compris les anciennes bibliothèques clientes de l'API Google, consultez la section Présentation des bibliothèques clientes.

De nouvelles bibliothèques clientes pour d'autres langages seront bientôt disponibles.

Installer la bibliothèque cliente

C#

Pour en savoir plus, consultez la page Configurer un environnement de développement C#.

Si vous utilisez Visual Studio 2017 ou une version ultérieure, ouvrez la fenêtre du gestionnaire de packages NuGet et saisissez les éléments suivants :

Install-Package Google.Apis

Si vous utilisez les outils d'interface de ligne de commande .NET Core pour installer vos dépendances, exécutez la commande suivante :

dotnet add package Google.Apis

Go

Pour plus d'informations, consultez la page Configurer un environnement de développement Go.

go get -u google.golang.org/api/jobs/v3

Java

Pour en savoir plus, consultez la section Configurer un environnement de développement Java.

Si vous utilisez Maven, ajoutez ce code à votre fichier pom.xml :

<dependency>
    <groupId>com.google.apis</groupId>
    <artifactId>google-api-services-jobs</artifactId>
    <version>LATEST</version>
</dependency>

Node.js

Pour en savoir plus, consultez la section Configurer un environnement de développement Node.js.

npm install --save googleapis

PHP

Pour en savoir plus, consultez la page Utiliser PHP sur Google Cloud.

composer require google/apiclient

Python

Pour en savoir plus, consultez la section Configurer un environnement de développement Python.

pip install --upgrade google-api-python-client

Ruby

Pour en savoir plus, consultez la section Configurer un environnement de développement Ruby.

gem install google-api-client

Configurer l'authentification

Pour exécuter la bibliothèque cliente, vous devez d'abord configurer l'authentification. Pour ce faire, vous pouvez créer un compte de service et définir une variable d'environnement, comme indiqué dans les étapes suivantes. Pour en savoir plus sur les méthodes d'authentification, consultez la section Authentification en tant que compte de service.

Cloud Console

Créez un compte de service :

  1. Dans Cloud Console, accédez à la page Créer un compte de service.

    Accéder à la page "Créer un compte de service"
  2. Sélectionnez un projet.
  3. Dans le champ Nom du compte de service, saisissez un nom. Cloud Console remplit le champ ID du compte de service en fonction de ce nom.

    Dans le champ Description du compte de service, saisissez une description. Exemple : Service account for quickstart.

  4. Cliquez sur Créer et continuer.
  5. Cliquez sur le champ Sélectionner un rôle.

    Dans la section Accès rapide, cliquez sur Basique, puis sur Propriétaire.

  6. Cliquez sur Continuer.
  7. Cliquez sur OK pour terminer la création du compte de service.

    Ne fermez pas la fenêtre de votre navigateur. Vous en aurez besoin lors de la tâche suivante.

Créez une clé de compte de service :

  1. Dans Cloud Console, cliquez sur l'adresse e-mail du compte de service que vous avez créé.
  2. Cliquez sur Clés.
  3. Cliquez sur Add key (Ajouter une clé), puis sur Create new key (Créer une clé).
  4. Cliquez sur Create (Créer). Un fichier de clé JSON est téléchargé sur votre ordinateur.
  5. Cliquez sur Close (Fermer).

Ligne de commande

Vous pouvez exécuter les commandes suivantes à l'aide du SDK Cloud sur votre ordinateur local, ou dans Cloud Shell.

  1. Créez le compte de service. Remplacez NAME par le nom que vous souhaitez donner au compte de service.

    gcloud iam service-accounts create NAME
  2. Accordez des autorisations au compte de service. Remplacez PROJECT_ID par votre ID de projet.

    gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com" --role="roles/owner"
  3. Générez le fichier de clé. Remplacez FILE_NAME par le nom du fichier de clé.

    gcloud iam service-accounts keys create FILE_NAME.json --iam-account=NAME@PROJECT_ID.iam.gserviceaccount.com

Fournissez des identifiants d'authentification au code de votre application en définissant la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS. Cette variable ne s'applique qu'à la session d'interface système actuelle. Par conséquent, si vous ouvrez une nouvelle session, vous devez la définir à nouveau.

Linux ou macOS

export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

Remplacez KEY_PATH par le chemin du fichier JSON contenant la clé de votre compte de service.

Exemple :

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

Windows

Pour PowerShell :

$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

Remplacez KEY_PATH par le chemin du fichier JSON contenant la clé de votre compte de service.

Exemple :

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"

Pour l'invite de commande :

set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH

Remplacez KEY_PATH par le chemin du fichier JSON contenant la clé de votre compte de service.

Utiliser la bibliothèque cliente

L'exemple suivant montre comment utiliser la bibliothèque cliente.

Go


// Command quickstart is an example of using the Google Cloud Talent Solution API.
package main

import (
	"context"
	"fmt"
	"log"
	"os"

	"golang.org/x/oauth2/google"
	talent "google.golang.org/api/jobs/v3"
)

func main() {
	projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
	parent := fmt.Sprintf("projects/%s", projectID)

	// Authorize the client using Application Default Credentials.
	// See https://g.co/dv/identity/protocols/application-default-credentials
	ctx := context.Background()
	client, err := google.DefaultClient(ctx, talent.CloudPlatformScope)
	if err != nil {
		log.Fatal(err)
	}

	// Create the jobs service client.
	ctsService, err := talent.New(client)
	if err != nil {
		log.Fatal(err)
	}

	// Make the RPC call.
	response, err := ctsService.Projects.Companies.List(parent).Do()
	if err != nil {
		log.Fatalf("Failed to list Companies: %v", err)
	}

	// Print the request id.
	fmt.Printf("Request ID: %q\n", response.Metadata.RequestId)

	// Print the returned companies.
	for _, company := range response.Companies {
		fmt.Printf("Company: %q\n", company.Name)
	}
}

Java


private static final JsonFactory JSON_FACTORY = new JacksonFactory();
private static final NetHttpTransport NET_HTTP_TRANSPORT = new NetHttpTransport();
private static final String DEFAULT_PROJECT_ID =
    "projects/" + System.getenv("GOOGLE_CLOUD_PROJECT");

private static CloudTalentSolution talentSolutionClient =
    createTalentSolutionClient(generateCredential());

private static CloudTalentSolution createTalentSolutionClient(GoogleCredentials credential) {
  String url = "https://jobs.googleapis.com";

  HttpRequestInitializer requestInitializer =
      request -> {
        new HttpCredentialsAdapter(credential).initialize(request);
        request.setConnectTimeout(60000); // 1 minute connect timeout
        request.setReadTimeout(60000); // 1 minute read timeout
      };

  return new CloudTalentSolution.Builder(NET_HTTP_TRANSPORT, JSON_FACTORY, requestInitializer)
      .setApplicationName("JobServiceClientSamples")
      .setRootUrl(url)
      .build();
}

private static GoogleCredentials generateCredential() {
  try {
    // Credentials could be downloaded after creating service account
    // set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable, for example:
    // export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/key.json
    return GoogleCredentials.getApplicationDefault()
        .createScoped(Collections.singleton(CloudTalentSolutionScopes.JOBS));
  } catch (Exception e) {
    System.out.println("Error in generating credential");
    throw new RuntimeException(e);
  }
}

public static CloudTalentSolution getTalentSolutionClient() {
  return talentSolutionClient;
}

public static void main(String... args) throws Exception {
  try {
    ListCompaniesResponse listCompaniesResponse =
        talentSolutionClient.projects().companies().list(DEFAULT_PROJECT_ID).execute();
    System.out.println("Request Id is " + listCompaniesResponse.getMetadata().getRequestId());
    if (listCompaniesResponse.getCompanies() != null) {
      for (Company company : listCompaniesResponse.getCompanies()) {
        System.out.println(company.getName());
      }
    }
  } catch (IOException e) {
    System.out.println("Got exception while listing companies");
    throw e;
  }
}

Python

import os

from googleapiclient.discovery import build
from googleapiclient.errors import Error

client_service = build('jobs', 'v3')

def run_sample():
    try:
        project_id = 'projects/' + os.environ['GOOGLE_CLOUD_PROJECT']
        response = client_service.projects().companies().list(
            parent=project_id).execute()
        print('Request Id: %s' %
              response.get('metadata').get('requestId'))
        print('Companies:')
        if response.get('companies') is not None:
            for company in response.get('companies'):
                print('%s' % company.get('name'))
        print('')

    except Error as e:
        print('Got exception while listing companies')
        raise e

if __name__ == '__main__':
    run_sample()

Autres ressources