退订竞价包

您可以使用以下方法从 AuctionPackage 中退订买家账号或单个客户。

如需订阅竞价包,请参阅订阅

退订买家

您可以使用 buyers.auctionPackages.unsubscribe 方法让买家退订 AuctionPackage

退订竞价包会导致您停止接收基于相应竞价包定位的出价请求。您必须先退订买方下的所有客户,然后才能退订买方。

以下示例演示了如何使用 unsubscribe 方法让买家退订 AuctionPackage

REST

请求

POST https://authorizedbuyersmarketplace.googleapis.com/v1/buyers/12345678/auctionPackages/560644393848382202:unsubscribe?alt=json
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json

响应

{
 "name": "buyers/12345678/auctionPackages/560644393848382202",
 "creator": "buyers/42528410",
 "displayName": "Top 100 Mars Mobile Apps",
 "description": "Mobile Apps, Display format, United Federation of Mars.",
 "createTime": "2042-03-25T05:20:50.136Z",
 "updateTime": "2042-03-25T05:20:50.136Z"
}

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.auctionPackages;

import com.google.api.services.authorizedbuyersmarketplace.v1.AuthorizedBuyersMarketplace;
import com.google.api.services.authorizedbuyersmarketplace.v1.model.AuctionPackage;
import com.google.api.services.authorizedbuyersmarketplace.v1.model.UnsubscribeAuctionPackageRequest;
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 unsubscribe a given buyer account to a specified auction package.
 *
 * <p>Once unsubscribed, the bidder will cease receiving bid requests for the auction package for
 * the specified buyer.
 */
public class UnsubscribeFromAuctionPackages {

  public static void execute(AuthorizedBuyersMarketplace marketplaceClient, Namespace parsedArgs) {
    Long accountId = parsedArgs.getLong("account_id");
    Long auctionPackageId = parsedArgs.getLong("auction_package_id");
    String name = String.format("buyers/%d/auctionPackages/%d", accountId, auctionPackageId);

    AuctionPackage auctionPackage = null;

    try {
      auctionPackage =
          marketplaceClient
              .buyers()
              .auctionPackages()
              .unsubscribe(name, new UnsubscribeAuctionPackageRequest())
              .execute();
    } catch (IOException ex) {
      System.out.printf("Marketplace API returned error response:%n%s", ex);
      System.exit(1);
    }

    System.out.printf(
        "Unsubscribing buyer with ID \"%d\" from auction package with ID \"%s\":%n",
        accountId, auctionPackageId);
    Utils.printAuctionPackage(auctionPackage);
  }

  public static void main(String[] args) {
    ArgumentParser parser =
        ArgumentParsers.newFor("UnsubscribeFromAuctionPackages")
            .build()
            .defaultHelp(true)
            .description(("Subscribe the given buyer account to the specified auction package."));
    parser
        .addArgument("-a", "--account_id")
        .help(
            "The resource ID of the buyers resource that will be unsubscribing from the auction"
                + " package. This will be used to construct the name used as a path parameter for"
                + " the auctionPackages.unsubscribe request.")
        .required(true)
        .type(Long.class);
    parser
        .addArgument("--auction_package_id")
        .help(
            "The resource ID of the buyers.auctionPackages resource that the buyer is "
                + "unsubscribing from. This will be used to construct the name used as a path "
                + "parameter for the auctionPackages.unsubscribe 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);
  }
}

退订客户

您可以使用 buyers.auctionPackages.unsubscribeClients 方法取消买方的一个或多个客户对 AuctionPackage 的订阅。

退订后,您的端点将不再接收基于指定客户的竞价包定位的出价请求。

从竞价包中退订所有客户不会退订父 buyer。如果您想退订某个 buyer,请先退订 buyer 下的所有 clients(使用 buyers.auctionPackages.unsubscribeClients),然后致电 buyers.auctionPackages.unsubscribe

以下示例演示了如何使用 unsubscribeClients 方法让客户端取消订阅 AuctionPackage

REST

请求

POST https://authorizedbuyersmarketplace.googleapis.com/v1/buyers/12345678/auctionPackages/560644393848382202:unsubscribeClients?alt=json
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json

{
 "clients": [
   "buyers/12345678/clients/136428959"
 ]
}

响应

{
 "name": "buyers/12345678/auctionPackages/560644393848382202",
 "creator": "buyers/42528410",
 "displayName": "Top 100 Mars Mobile Apps",
 "description": "Mobile Apps, Display format, United Federation of Mars.",
 "createTime": "2042-03-25T05:20:50.136Z",
 "updateTime": "2042-03-25T05:20:50.136Z",
 "subscribedClients": [
   "buyers/12345678/clients/873721984",
 ]
}

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.auctionPackages;

import com.google.api.services.authorizedbuyersmarketplace.v1.AuthorizedBuyersMarketplace;
import com.google.api.services.authorizedbuyersmarketplace.v1.model.AuctionPackage;
import com.google.api.services.authorizedbuyersmarketplace.v1.model.UnsubscribeClientsRequest;
import com.google.api.services.samples.authorizedbuyers.marketplace.v1.Utils;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.List;
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 unsubscribe one or more clients from a specified auction package.
 */
public class UnsubscribeClientsFromAuctionPackages {

  public static void execute(AuthorizedBuyersMarketplace marketplaceClient, Namespace parsedArgs) {
    Long accountId = parsedArgs.getLong("account_id");
    Long auctionPackageId = parsedArgs.getLong("auction_package_id");
    List<String> clientIds = parsedArgs.getList("client_ids");
    String name = String.format("buyers/%d/auctionPackages/%d", accountId, auctionPackageId);

    AuctionPackage auctionPackage = null;

    UnsubscribeClientsRequest unsubscribeClientsRequest = new UnsubscribeClientsRequest();
    unsubscribeClientsRequest.setClients(clientIds);

    try {
      auctionPackage =
          marketplaceClient
              .buyers()
              .auctionPackages()
              .unsubscribeClients(name, unsubscribeClientsRequest)
              .execute();
    } catch (IOException ex) {
      System.out.printf("Marketplace API returned error response:%n%s", ex);
      System.exit(1);
    }

    System.out.printf(
        "Unsubscribing the following clients to for buyer \"%d\" from auction "
            + "package with ID \"%s\":%n",
        accountId, auctionPackageId);
    System.out.println("\t- " + String.join(String.format("%n\t- "), clientIds));
    Utils.printAuctionPackage(auctionPackage);
  }

  public static void main(String[] args) {
    ArgumentParser parser =
        ArgumentParsers.newFor("UnsubscribeClientsFromAuctionPackages")
            .build()
            .defaultHelp(true)
            .description(("Unsubscribe one or more clients from the specified auction package."));
    parser
        .addArgument("-a", "--account_id")
        .help(
            "The resource ID of the buyers resource under which the clients unsubscribing from the"
                + " auction package exist. This will be used to construct the name used as a path"
                + " parameter for the auctionPackages.unsubscribeClients request, and client names"
                + " that will be included in the body of the auctionPackages.unsubscribeClients"
                + " request.")
        .required(true)
        .type(Long.class);
    parser
        .addArgument("--auction_package_id")
        .help(
            "The resource ID of the buyers.auctionPackages resource that the buyer is unsubscribing"
                + " their clients from. This will be used to construct the name used as a path"
                + " parameter for the auctionPackages.unsubscribeClients request.")
        .required(true)
        .type(Long.class);
    parser
        .addArgument("--client_ids")
        .help(
            "The resource IDs of one or more buyers.clients resources that the buyer is"
                + " unsubscribing from an auction package. This will be used to construct client"
                + " names that will be included in the body of the"
                + " auctionPackages.unsubscribeClients request. Specify each client ID separated by"
                + " a space.")
        .required(true)
        .type(Long.class)
        .nargs("+");

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