CTS client libraries

This page shows how to get started with the Cloud Client Libraries for the Cloud Talent Solution API. Read more about the client libraries for Cloud APIs, including the older Google API Client Libraries, in Client Libraries Explained.

Client libraries for more languages are coming soon.

Install the client library

C#

For more information, see Setting Up a C# Development Environment.

If you are using Visual Studio 2017 or higher, open nuget package manager window and type the following:

Install-Package Google.Apis

If you are using .NET Core command-line interface tools to install your dependencies, run the following command:

dotnet add package Google.Apis

Go

For more information, see Setting Up a Go Development Environment.

go get google.golang.org/api/jobs/v3p1beta1

Java

For more information, see Setting Up a Java Development Environment.

If you are using Maven, add this to your pom.xml file:

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

Node.js

For more information, see Setting Up a Node.js Development Environment.

npm install --save googleapis

PHP

For more information, see Using PHP on Google Cloud.

composer require google/apiclient

Python

For more information, see Setting Up a Python Development Environment.

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

Ruby

For more information, see Setting Up a Ruby Development Environment.

gem install google-api-client

Set up authentication

When you use client libraries, you use Application Default Credentials (ADC) to authenticate. For information about setting up ADC, see Provide credentials for Application Default Credentials. For information about using ADC with client libraries, see Authenticate using client libraries.

Use the client library

The following example shows how to use the client library.

Go

To authenticate to CTS, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.


// 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

To authenticate to CTS, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.


private static final JsonFactory JSON_FACTORY = new GsonFactory();
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;
  }
}

Node.js

To authenticate to CTS, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.


// Imports the Google APIs client library
const {google} = require('googleapis');
const projectId = process.env.GOOGLE_CLOUD_PROJECT;

// Acquires credentials
google.auth.getApplicationDefault((err, authClient) => {
  if (err) {
    console.error('Failed to acquire credentials');
    console.error(err);
    return;
  }

  if (authClient.createScopedRequired && authClient.createScopedRequired()) {
    authClient = authClient.createScoped([
      'https://www.googleapis.com/auth/jobs'
    ]);
  }

  // Instantiates an authorized client
  const jobService = google.jobs({
    version: 'v3p1beta1',
    auth: authClient
  });

  const request = {
    parent: `projects/${projectId}`,
  };

  // Lists companies
  jobService.projects.companies.list(request, function (err, result) {
    if (err) {
      console.error('Failed to retrieve companies! ' + err);
      throw err;
    }
    console.log(`Request ID: ${result.data.metadata.requestId}`);

    const companies = result.data.companies || [];

    if (companies.length) {
      console.log('Companies:');
      companies.forEach((company) => console.log(company.name));
    } else {
      console.log(`No companies found.`);
    }
  });
});

Python

To authenticate to CTS, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

# import os

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

# client_service = build('jobs', 'v3p1beta1')

import os
import pprint   
import json 
import httplib2 
from apiclient.discovery import build_from_document    
from apiclient.http import build_http   
from googleapiclient.errors import Error
from oauth2client.service_account import ServiceAccountCredentials  

scopes = ['https://www.googleapis.com/auth/jobs']  
credential_path = os.environ['GOOGLE_APPLICATION_CREDENTIALS']  
credentials = ServiceAccountCredentials.from_json_keyfile_name( 
    credential_path, scopes)    
http = httplib2.Http(".cache", disable_ssl_certificate_validation=True)    
http = credentials.authorize(http=build_http()) 
content = open("/usr/local/google/home/xinyunh/discovery/talent_public_discovery_v3p1beta1_distrib.json",'r').read()   
discovery = json.loads(content) 
client_service = build_from_document(discovery, 'talent', 'v3p1beta1', http=http)


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:')
        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()

Additional resources