Before You Begin (v3)

Set up

To enroll your Google Cloud Platform project (GCP Project) in data logging, follow these steps:

  1. Go to the GCP Console.
    If you don't already have a Google Cloud Project set up, you must create a project.
  2. Go to your project settings for Cloud Talent Solution in the GCP Dashboard. To view navigation, click the hamburger icon in the upper left-hand corner and scroll down to select Talent Solution under Artificial Intelligence.

    Select your project from the drop down.
  3. If you don't already have a billing account associated with this Google Cloud Project, you are prompted to first set up a billing account and then link it to this Google Cloud Project. Note that only a person who is the owner of the Google Cloud Project and the owner of the billing account can link them.
    1. Click Enable billing.

      The Enable billing for project dialog box appears.
    2. Click CREATE BILLING ACCOUNT. See Create, Modify, or Close Your Billing Account.
  4. Enable API
    Click ENABLE.

  5. The dashboard page appears.
    Click the DATA LOGGING tab.

  6. The data logging opt-in page appears. Accepting the terms outlined on this page allows you to use the various API features. By not accepting these terms, you'll only be able to use deletion API requests.

    Click ENABLE.

    The confirmation page appears.
  7. Click CONTINUE on the confirmation page.


    The Connect service accounts view appears.

  8. Connect service accounts
    If you already have service accounts created for your Google Cloud project, you'll see a list of them here, otherwise, click MANAGE SERVICE ACCOUNTS. See Creating a service account for instructions.



    When creating the service account, also check the box Furnish a new private key. A new JSON credential file is automatically downloaded. Store this file in a specific location on the server, and follow the instructions to set the GOOGLE_APPLICATION_CREDENTIALS environment variable to point to this file. This is an essential step for authenticating requests to Cloud Talent Solution.

  9. After creating the service account, navigate back to the Cloud Talent Solution left-nav tab. The service account you've created now appears. Click CONNECT to link this account to Cloud Talent Solution.

  10. The account is now connected.
    Click DONE to proceed.

  11. You're now ready to begin integrating Cloud Talent Solution into your system.

  12. Set your project id to environment.

    LINUX OR MACOS

    export GOOGLE_CLOUD_PROJECT="your-project-id"

    WINDOWS

    With PowerShell:

    $env:GOOGLE_CLOUD_PROJECT="your-project-id"

    With command prompt:

    set GOOGLE_CLOUD_PROJECT="your-project-id"
  13. Next, go to the Create companies and jobs quickstart, to start integrating Cloud Talent Solution.

Install Client library

Java

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.

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>
  

Python

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.

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

Ruby

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.

gem install google-api-client

Node.js

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.

npm install --save googleapis

PHP

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.

composer require google/apiclient

Go

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.

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

C#

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.

In Visual Studio 2013/2015, open the Package Manager Console and run this command:

Install-Package Google.Apis.Jobs.v3

Make a request

Java

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.


private static final JsonFactory JSON_FACTORY = new JacksonFactory();
private static final NetHttpTransport NET_HTTP_TRANSPORT = new NetHttpTransport();
private static final String SCOPES = "https://www.googleapis.com/auth/jobs";
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 = new HttpCredentialsAdapter(credential);
  return new CloudTalentSolution.Builder(
          NET_HTTP_TRANSPORT, JSON_FACTORY, setHttpTimeout(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(SCOPES));
  } catch (Exception e) {
    System.out.print("Error in generating credential");
    throw new RuntimeException(e);
  }
}

private static HttpRequestInitializer setHttpTimeout(
    final HttpRequestInitializer requestInitializer) {
  return request -> {
    requestInitializer.initialize(request);
    request.setHeaders(new HttpHeaders().set("X-GFE-SSL", "yes"));
    request.setConnectTimeout(1 * 60000); // 1 minute connect timeout
    request.setReadTimeout(1 * 60000); // 1 minute read timeout
  };
}

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

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.

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

Ruby

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.

require "google/apis/jobs_v3"
require "rails"

# Instantiate the client
Jobs = Google::Apis::JobsV3
jobs_client = Jobs::CloudTalentSolutionService.new

# @see https://developers.google.com/identity/protocols/application-default-credentials#callingruby
jobs_client.authorization = Google::Auth.get_application_default(
  "https://www.googleapis.com/auth/jobs"
)

# ProjectId to get company list
DEFAULT_PROJECT_ID = "projects/" + ENV["GOOGLE_CLOUD_PROJECT"]
# Request list of companies
response = jobs_client.list_project_companies DEFAULT_PROJECT_ID

# Print the request id
puts "Request id : " + response.metadata.request_id

# List all companies for your project
puts "Companies: "
if response.companies
  response.companies.each do |company|
    puts company.name
  end
else
  puts "No companies found"
end

Node.js

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.


// Imports the Google APIs client library
const {google} = require('googleapis');

const PROJECT_ID = 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 jobServiceClient = google.jobs({
    version: 'v3',
    auth: authClient,
  });

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

  // Lists companies
  jobServiceClient.projects.companies.list(request, (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.`);
    }
  });
});

PHP

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.

// Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';

// Instantiate the client
$client = new Google_Client();

// Authorize the client using Application Default Credentials
// @see https://developers.google.com/identity/protocols/application-default-credentials
$client->useApplicationDefaultCredentials();
$client->setScopes(array(
    'https://www.googleapis.com/auth/jobs'
));

// Instantiate the Cloud Talent Solustion Service API
$cloudTalentSolutionClient = new Google_Service_CloudTalentSolution($client);
$projectId = getenv('GOOGLE_CLOUD_PROJECT');
$parent = sprintf('projects/%s', $projectId);

// list companies
$companies = $cloudTalentSolutionClient->projects_companies->listProjectsCompanies(
    $projectId,
    array('parent' => $parent)
);

// Print the companies
echo 'Companies: ' . PHP_EOL;
foreach ($companies as $company) {
    echo $company->name . PHP_EOL;
}

Go

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.


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

C#

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries.


using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using System;
using Google.Apis.CloudTalentSolution.v3;
using Google.Apis.CloudTalentSolution.v3.Data;
using System.Linq;

namespace GoogleCloudSamples
{
    public class QuickStart
    {
        public static GoogleCredential credential;
        public static CloudTalentSolutionService jobServiceClient;
        public static string projectId;
        public static string parent;

        public static void Main(string[] args)
        {
            // Authorize the client using Application Default Credentials.
            // See: https://developers.google.com/identity/protocols/application-default-credentials
            credential = GoogleCredential.GetApplicationDefaultAsync().Result;
            // Specify the Service scope.
            if (credential.IsCreateScopedRequired)
            {
                credential = credential.CreateScoped(new[]
                {
                    Google.Apis.CloudTalentSolution.v3.CloudTalentSolutionService.Scope.Jobs
                });
            }
            // Instantiate the Cloud Key Management Service API.
            jobServiceClient = new CloudTalentSolutionService(new BaseClientService.Initializer
            {
                HttpClientInitializer = credential,
                GZipEnabled = false
            });

            projectId = Environment.GetEnvironmentVariable("GOOGLE_PROJECT_ID");
            parent = $"projects/{projectId}";

            // List companies.
            ListCompaniesResponse result = jobServiceClient.Projects.Companies.List(parent).Execute();
            Console.WriteLine("Request Id: " + result.Metadata.RequestId);
            if (result.Companies != null)
            {
                Console.WriteLine("Companies: ");
                result.Companies.ToList().ForEach(company => Console.WriteLine(company.Name));
            }
            else { Console.WriteLine("No companies found."); }
        }
    }
}