Trabajar con datos de reseñas

En este tutorial se explica cómo obtener una lista con reseñas, consultar reseñas, responder a ellas o eliminarlas. La API de Google My Business te permite realizar las operaciones siguientes con los datos de las reseñas:

Antes de empezar

Para usar la API de Google My Business, debes registrar tu aplicación y obtener credenciales de OAuth 2.0. Para ver información detallada sobre cómo empezar a usar la API de Google My Business, consulta la sección Configuración básica.

Obtener una lista con todas las reseñas

Puedes obtener una lista con todas las reseñas de una ubicación específica para auditarlas en bloque. Utiliza la API accounts.locations.review.list para que se devuelvan todas las reseñas asociadas a una ubicación.

Para que se devuelvan todas las reseñas asociadas a una ubicación, utiliza el código siguiente:

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

En la función siguiente se utiliza 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;
}

Consultar una reseña específica

Puedes consultar una reseña concreta por nombre. Usa la API accounts.locations.reviews.get para que se devuelva una reseña específica asociada a una ubicación.

Para que se devuelva una reseña concreta, utiliza el código siguiente:

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

En la función siguiente se utiliza 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 de cliente de Java ofrece acceso a datos adicionales de campos para instancias de reseñas. Utiliza los métodos siguientes para que se devuelvan datos adicionales sobre las reseñas:

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

Consultar reseñas de varias ubicaciones

Puedes consultar reseñas de varias ubicaciones. Usa la API accounts.locations.batchGetReviews para que se devuelvan reseñas de varias ubicaciones con una misma solicitud.

Para que se devuelvan reseñas de varias ubicaciones, utiliza el código siguiente:

HTTP

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

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

Responder a reseñas

Puedes responder a una reseña específica o crear una respuesta si no hay ninguna. Usa la API accounts.locations.reviews.updateReply para responder a una reseña concreta asociada a una ubicación.

Para responder a una reseña específica, utiliza el código siguiente:

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

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

En la función siguiente se utiliza 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;
}

Eliminar respuestas de reseñas

Eliminar una respuesta de una reseña específica Usa la API accounts.locations.reviews.deleteReply para eliminar una respuesta de una reseña concreta asociada a una ubicación.

Para eliminar una respuesta específica de una reseña, utiliza el código siguiente:

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

En la función siguiente se utiliza 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;
}