Adicionar e remover usuários

Você pode usar os métodos a seguir para adicionar e remover um indivíduo ClientUser em um Client.

Adicionar usuário

Você pode usar o buyers.clients.users.create método para convidar uma nova pessoa a acessar a interface do Authorized Buyers em nome de um cliente.

Quando você cria um ClientUser, o state dele é definido como INVITED, e o Google envia um convite como este ao e-mail fornecido:

A pessoa precisa clicar em ACEITAR CONVITE para ter acesso à interface do Marketplace do Authorized Buyers. É necessário fazer login em uma Conta do Google para acessar a interface do Marketplace do Authorized Buyers.

O exemplo a seguir demonstra como adicionar um novo ClientUser com o método create.

REST

Solicitação

POST https://authorizedbuyersmarketplace.googleapis.com/v1/buyers/12345678/clients/873721984/users?alt=json
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json

{
 "email": "james@luxurymarscruises.mars"
}

Resposta

{
 "name": "buyers/12345678/clients/873721984/users/4683251",
 "state": "INVITED",
 "email": "james@luxurymarscruises.mars"
}

Java

/*
 * Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.google.api.services.samples.authorizedbuyers.marketplace.v1.buyers.clients.users;

import com.google.api.services.authorizedbuyersmarketplace.v1.AuthorizedBuyersMarketplace;
import com.google.api.services.authorizedbuyersmarketplace.v1.model.ClientUser;
import com.google.api.services.samples.authorizedbuyers.marketplace.v1.Utils;
import java.io.IOException;
import java.security.GeneralSecurityException;
import net.sourceforge.argparse4j.ArgumentParsers;
import net.sourceforge.argparse4j.inf.ArgumentParser;
import net.sourceforge.argparse4j.inf.ArgumentParserException;
import net.sourceforge.argparse4j.inf.Namespace;
import org.apache.commons.lang3.RandomUtils;

/**
 * Creates a client user for the given client.
 *
 * <p>When a client user is created, the specified email address will receive an email to confirm
 * access to the Authorized Buyers UI. It will remain in the "INVITED" state and be unable to access
 * the UI until the specified email has approved of the change.
 */
public class CreateClientUsers {

  public static void execute(AuthorizedBuyersMarketplace marketplaceClient, Namespace parsedArgs) {
    Long accountId = parsedArgs.getLong("account_id");
    Long clientId = parsedArgs.getLong("client_id");

    String parentClientName = String.format("buyers/%d/clients/%d", accountId, clientId);

    ClientUser newClientUser = new ClientUser();
    newClientUser.setEmail(parsedArgs.getString("email"));

    ClientUser clientUser = null;
    try {
      clientUser =
          marketplaceClient
              .buyers()
              .clients()
              .users()
              .create(parentClientName, newClientUser)
              .execute();
    } catch (IOException ex) {
      System.out.printf("Marketplace API returned error response:%n%s", ex);
      System.exit(1);
    }

    System.out.printf("Created client user for client with name \"%s\":%n", parentClientName);
    Utils.printClientUser(clientUser);
  }

  public static void main(String[] args) {
    RandomUtils rng = new RandomUtils();

    ArgumentParser parser =
        ArgumentParsers.newFor("CreateClientUsers")
            .build()
            .defaultHelp(true)
            .description(("Creates a client user for the given buyer and client ID."));
    parser
        .addArgument("-a", "--account_id")
        .help(
            "The resource ID of the buyers resource under which the client user is to be created."
                + " This will be used to construct the name used as a path parameter for the"
                + " users.create request.")
        .required(true)
        .type(Long.class);
    parser
        .addArgument("-c", "--client_id")
        .help(
            "The resource ID of the buyers.clients resource under which the client user is to be"
                + " created. This will be used to construct the name used as a path parameter for"
                + " the users.create request.")
        .required(true)
        .type(Long.class);
    parser
        .addArgument("-e", "--email")
        .help(
            "The client user's email address that has to be unique across all client users for "
                + "a given client. By default, this will be set to a randomly generated email for "
                + "demonstration purposes.")
        .type(String.class)
        .setDefault(String.format("testemail%s@test.com", rng.nextInt(10000000, 99999999)));

    Namespace parsedArgs = null;
    try {
      parsedArgs = parser.parseArgs(args);
    } catch (ArgumentParserException ex) {
      parser.handleError(ex);
      System.exit(1);
    }

    AuthorizedBuyersMarketplace client = null;
    try {
      client = Utils.getMarketplaceClient();
    } catch (IOException ex) {
      System.out.printf("Unable to create Marketplace API service:%n%s", ex);
      System.out.println("Did you specify a valid path to a service account key file?");
      System.exit(1);
    } catch (GeneralSecurityException ex) {
      System.out.printf("Unable to establish secure HttpTransport:%n%s", ex);
      System.exit(1);
    }

    execute(client, parsedArgs);
  }
}

Remover usuário

Você pode usar o buyers.clients.users.delete método para remover um ClientUser.

Por exemplo, é possível usar delete para revogar permanentemente o acesso de uma pessoa à interface do Marketplace do Authorized Buyers para um determinado cliente.

Depois de remover um ClientUser, você precisa criar um novo ClientUser, e a pessoa precisa aceitar um novo convite para recuperar o acesso à interface do Marketplace do Authorized Buyers.

O exemplo a seguir demonstra como excluir um ClientUser com o método delete.

REST

Solicitação

DELETE https://authorizedbuyersmarketplace.googleapis.com/v1/buyers/12345678/clients/873721984/users/4573638?alt=json
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json

Resposta

{}

Java

/*
 * Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.google.api.services.samples.authorizedbuyers.marketplace.v1.buyers.clients.users;

import com.google.api.services.authorizedbuyersmarketplace.v1.AuthorizedBuyersMarketplace;
import com.google.api.services.samples.authorizedbuyers.marketplace.v1.Utils;
import java.io.IOException;
import java.security.GeneralSecurityException;
import net.sourceforge.argparse4j.ArgumentParsers;
import net.sourceforge.argparse4j.inf.ArgumentParser;
import net.sourceforge.argparse4j.inf.ArgumentParserException;
import net.sourceforge.argparse4j.inf.Namespace;

/**
 * This sample illustrates how to delete a client user for the given buyer, client, and user IDs.
 */
public class DeleteClientUsers {

  public static void execute(AuthorizedBuyersMarketplace marketplaceClient, Namespace parsedArgs) {
    Long accountId = parsedArgs.getLong("account_id");
    Long clientId = parsedArgs.getLong("client_id");
    Long clientUserId = parsedArgs.getLong("client_user_id");
    String name = String.format("buyers/%d/clients/%d/users/%d", accountId, clientId, clientUserId);

    try {
      marketplaceClient.buyers().clients().users().delete(name).execute();
    } catch (IOException ex) {
      System.out.printf("Marketplace API returned error response:%n%s", ex);
      System.exit(1);
    }

    System.out.printf("Deleted client user with name \"%s\":%n", name);
  }

  public static void main(String[] args) {
    ArgumentParser parser =
        ArgumentParsers.newFor("DeactivateClientUsers")
            .build()
            .defaultHelp(true)
            .description(("Delete a client user with the given buyer, client, and user ID."));
    parser
        .addArgument("-a", "--account_id")
        .help(
            "The resource ID of the buyers resource under which the parent client was created. "
                + "This will be used to construct the name used as a path parameter for the "
                + "users.delete request.")
        .required(true)
        .type(Long.class);
    parser
        .addArgument("-c", "--client_id")
        .help(
            "The resource ID of the buyers.clients resource under which the client user was"
                + " created. This will be used to construct the name used as a path parameter for"
                + " the users.delete request.")
        .required(true)
        .type(Long.class);
    parser
        .addArgument("-u", "--client_user_id")
        .help(
            "The resource ID of the buyers.clients.users resource that is being deleted. "
                + "This will be used to construct the name used as a path parameter for the "
                + "users.delete request.")
        .required(true)
        .type(Long.class);

    Namespace parsedArgs = null;
    try {
      parsedArgs = parser.parseArgs(args);
    } catch (ArgumentParserException ex) {
      parser.handleError(ex);
      System.exit(1);
    }

    AuthorizedBuyersMarketplace client = null;
    try {
      client = Utils.getMarketplaceClient();
    } catch (IOException ex) {
      System.out.printf("Unable to create Marketplace API service:%n%s", ex);
      System.out.println("Did you specify a valid path to a service account key file?");
      System.exit(1);
    } catch (GeneralSecurityException ex) {
      System.out.printf("Unable to establish secure HttpTransport:%n%s", ex);
      System.exit(1);
    }

    execute(client, parsedArgs);
  }
}