I am trying to read all the reviews of a google location using accounts.locations.reviews.list. I cannot understand where I am making mistake that the code fails. The location exists.
my code is
public static JSONArray FetchReviewsAsync(String hostname, String locationName) throws Exception {
JSONArray finalReviews = new JSONArray();
Credential theCredentials = Authorize.getAuthorization(hostname);
String accessToken = theCredentials.getAccessToken();
String baseUrl = "https://mybusiness.googleapis.com/v4/" + locationName + "/reviews";
HttpClient client = HttpClient.newHttpClient();
String pageToken = null;
// reading the next pages
do {
String url = baseUrl;
if (pageToken != null) {
url += "?pageToken=" + pageToken; // Construct URL with pageToken
}
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.header("Authorization", "Bearer " + accessToken)
.header("Content-Type", "application/json; charset=UTF-8")
.build();
System.out.println("request is "+request);
HttpResponse<String> response;
try {
response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 200) {
JSONObject responseObject = new JSONObject(response.body());
JSONArray reviews = responseObject.optJSONArray("reviews");
if (reviews != null) {
for (int i = 0; i < reviews.length(); i++) {
JSONObject review =reviews.getJSONObject(i);
finalReviews.put(review);
}
}
pageToken = responseObject.optString("nextPageToken", null);
} else {
System.err.println("failed response is "+ response);
throw new RuntimeException("Failed to fetch page: " + response.statusCode());
}
} catch (Throwable e) {
System.err.println("An error occurred while fetching the reviews: " + e.getMessage());
throw new RuntimeException("Error during HTTP request", e);
}
} while (pageToken != null);
return finalReviews;
}
The error is
An error occurred while fetching the reviews: Failed to fetch page:
404