Cómo trabajar con datos de opiniones

En este instructivo, se muestra cómo enumerar, devolver, responder y borrar una opinión. La API de Google My Business te permite trabajar con datos de opiniones para realizar las siguientes operaciones:

Antes de comenzar

Antes de usar la API de Google Mi Negocio, debes registrar tu aplicación y obtener credenciales de OAuth 2.0. Para obtener detalles sobre cómo comenzar a usar la API de Google Mi Negocio, consulta Configuración básica.

Cómo mostrar todas las opiniones

Muestra una lista de todas las opiniones de una ubicación para auditarlas de forma masiva. Usa la API de accounts.locations.reviews.list para mostrar todas las opiniones asociadas con una ubicación.

Para mostrar todas las opiniones asociadas con una ubicación, usa lo siguiente:

HTTPJava
GET
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/reviews

La siguiente función usa Mybusiness.Accounts.Locations.Reviews.List.

/**
 * Returns a list of reviews.
 * @param locationName Name of the location to retrieve reviews for.
 * @return List<Reviews> A list of reviews.
 * @throws Exception
 */
public static List<Review> listReviews(String locationName) throws Exception {
  Mybusiness.Accounts.Locations.Reviews.List reviewsList =
    mybusiness.accounts().locations().reviews().list(locationName);
  ListReviewsResponse response = accountsList.execute();
  List<Reviews> reviews = response.getReviews();

  for (Reviews review : reviews) {
    System.out.println(review.toPrettyString());
  }
  return reviews;
}

Cómo obtener una opinión específica

Muestra una opinión específica por nombre. Usa la API de accounts.locations.reviews.get para mostrar una opinión específica asociada con una ubicación.

Para mostrar una opinión específica, usa lo siguiente:

HTTPJava
GET
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/reviews/{reviewId}

La siguiente función usa Mybusiness.Accounts.Locations.Reviews.Get.

/**
 * Demonstrates getting a review by name.
 * @param reviewName The name (resource path) of the review to retrieve.
 * @return Account The requested review.
 */
private static Review getReview(String reviewName) throws Exception {
  Mybusiness.Accounts.Locations.Reviews.Get review =
      mybusiness.accounts().locations().reviews().get(reviewName);
  Review response = review.execute();

  return response;
}

Datos adicionales

La biblioteca cliente de Java te brinda acceso a datos de campo adicionales para instancias de revisión. Usa los siguientes métodos para mostrar datos adicionales sobre las opiniones:

  • getReviewId()
  • getComment()
  • getReviewer()
  • getStarRating()
  • getCreateTime()
  • getReviewReply()

Cómo obtener opiniones de varias ubicaciones

Obtener opiniones de varias ubicaciones Usa la API de accounts.locations.batchGetReviews para mostrar opiniones de varias ubicaciones en una sola solicitud.

Para mostrar opiniones de varias ubicaciones, usa lo siguiente:

HTTP

POST
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations:batchGetReviews

{
  "locationNames": [
    string
  ],
  "pageSize": number,
  "pageToken": string,
  "orderBy": string,
  "ignoreRatingOnlyReviews": boolean
}

Cómo responder a una opinión

Responde a una opinión específica o crea una nueva si no existe una. Usa la API de accounts.locations.reviews.updateReply para responder a una opinión específica asociada con una ubicación.

Para responder a una opinión específica, usa lo siguiente:

HTTPJava
PUT
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/reviews/{reviewId}/reply

{
  comment: "Thank you for visiting our business!"
}

La siguiente función usa Mybusiness.accounts.locations.reviews.reply.

/*
 * Updates the reply for a location review.
 * If a review does not exist, creates a new one.
 * @param reviewName Name of the review being responded to.
 * @param comment A string containing the review response body.
 * @throws IOException
 */
private static Reply reply(String reviewName, String comment) throws IOException {

  MyBusiness.Accounts.Locations.Reviews.Reply reply =
    mybusiness().accounts().locations().reviews().reply(reviewName, comment);

  Reply response  = reviewReply.execute();

  return response;
}

Cómo borrar una respuesta a una opinión

Borrar una respuesta a una opinión específica Usa la API de accounts.locations.reviews.deleteReply para borrar una respuesta a una opinión específica asociada con una ubicación.

Para borrar una respuesta específica a una opinión, usa lo siguiente:

HTTPJava
DELETE
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/reviews/{reviewId}/reply

La siguiente función usa Mybusiness.Accounts.Locations.Reviews.DeleteReply.

/**
 * Demonstrates deleting a review reply by name.
 * @param reviewName The name (resource path) of the review reply to delete.
 * @return Account The requested review.
 */
private static DeleteReply deleteReply(String reviewName) throws Exception {
  Mybusiness.Accounts.Locations.Reviews.DeleteReply toDelete =
      mybusiness.accounts().locations().reviews().deleteReply(reviewName);
  DeleteReply response = toDelete.execute();

  return response;
}