Verification Failed: 400 Bad Request
Response: {
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT"
}
}
< /code>
code: < /p>
package org.example;
import com.google.auth.oauth2.AccessToken;
import com.google.auth.oauth2.GoogleCredentials;
import okhttp3.*;
import org.json.JSONObject;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.Base64;
import java.util.Collections;
public class Main {
private static final String VERIFIED_ACCESS_URL = "https://verifiedaccess.googleapis.com/v2/challenge:verify";
// Fetch sensitive data from environment variables
private static final String SERVICE_ACCOUNT_KEY = System.getenv("SERVICE_ACCOUNT_KEY");
private static final String CHALLENGE_RESPONSE = System.getenv("CHALLENGE_RESPONSE");
private static final String EXPECTED_IDENTITY = "KIOSK_MODE"; // Optional, set if needed
public static void main(String[] args) {
try {
// Validate the challenge response
String sanitizedResponse = CHALLENGE_RESPONSE.trim();
if (!isValidBase64(sanitizedResponse)) {
System.err.println("Invalid Base64 encoding in challenge response.");
return;
}
String accessToken = getAccessToken();
// Prepare the payload
JSONObject payloadJson = new JSONObject();
payloadJson.put("challengeResponse", sanitizedResponse);
if (!EXPECTED_IDENTITY.isEmpty()) {
payloadJson.put("expectedIdentity", EXPECTED_IDENTITY);
}
String payload = payloadJson.toString();
System.out.println("Payload: " + payload);
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create(payload, MediaType.parse("application/json"));
Request request = new Request.Builder()
.url(VERIFIED_ACCESS_URL)
.addHeader("Authorization", "Bearer " + accessToken)
.addHeader("Content-Type", "application/json")
.post(body)
.build();
// Execute the request
try (Response response = client.newCall(request).execute()) {
String responseBody = response.body() != null ? response.body().string() : "No response body";
System.out.println("HTTP Response Code: " + response.code());
System.out.println("Response Body: " + responseBody);
if (response.isSuccessful()) {
System.out.println("Verification Successful!");
} else {
System.err.println("Verification Failed. Reason: " + responseBody);
}
}
} catch (Exception e) {
System.err.println("Error occurred: " + e.getMessage());
e.printStackTrace();
}
}
private static String getAccessToken() throws IOException {
GoogleCredentials credentials = GoogleCredentials.fromStream(
new ByteArrayInputStream(SERVICE_ACCOUNT_KEY.getBytes()))
.createScoped(Collections.singletonList("https://www.googleapis.com/auth/verifiedaccess"));
credentials.refreshIfExpired();
AccessToken token = credentials.getAccessToken();
if (token == null) {
throw new RuntimeException("Failed to fetch the access token.");
}
return token.getTokenValue();
}
private static boolean isValidBase64(String input) {
try {
Base64.getDecoder().decode(input);
return true;
} catch (IllegalArgumentException e) {
return false;
}
}
}
Я следил за документацией Google Provied Access: https://developers.google.com/chrome/ve ... ideобразно Формат json. < /P>
Что может вызвать ошибку vangid_argument? Любые предложения по решению этой проблемы были бы очень оценены! Спасибо.
Я использую следующий код для отправки ответа на задание на API Verify Google для проверки. Тем не менее, я сталкиваюсь с ошибкой: < /p> [code]Verification Failed: 400 Bad Request Response: { "error": { "code": 400, "message": "Request contains an invalid argument.", "status": "INVALID_ARGUMENT" } } < /code> code: < /p> package org.example;
private static final String VERIFIED_ACCESS_URL = "https://verifiedaccess.googleapis.com/v2/challenge:verify"; // Fetch sensitive data from environment variables private static final String SERVICE_ACCOUNT_KEY = System.getenv("SERVICE_ACCOUNT_KEY"); private static final String CHALLENGE_RESPONSE = System.getenv("CHALLENGE_RESPONSE"); private static final String EXPECTED_IDENTITY = "KIOSK_MODE"; // Optional, set if needed
public static void main(String[] args) { try { // Validate the challenge response String sanitizedResponse = CHALLENGE_RESPONSE.trim(); if (!isValidBase64(sanitizedResponse)) { System.err.println("Invalid Base64 encoding in challenge response."); return; }
String accessToken = getAccessToken();
// Prepare the payload JSONObject payloadJson = new JSONObject(); payloadJson.put("challengeResponse", sanitizedResponse); if (!EXPECTED_IDENTITY.isEmpty()) { payloadJson.put("expectedIdentity", EXPECTED_IDENTITY); }
private static String getAccessToken() throws IOException { GoogleCredentials credentials = GoogleCredentials.fromStream( new ByteArrayInputStream(SERVICE_ACCOUNT_KEY.getBytes())) .createScoped(Collections.singletonList("https://www.googleapis.com/auth/verifiedaccess")); credentials.refreshIfExpired(); AccessToken token = credentials.getAccessToken(); if (token == null) { throw new RuntimeException("Failed to fetch the access token."); } return token.getTokenValue(); }
private static boolean isValidBase64(String input) { try { Base64.getDecoder().decode(input); return true; } catch (IllegalArgumentException e) { return false; } } } [/code] Я следил за документацией Google Provied Access: https://developers.google.com/chrome/verified-access/developer-guideобразно Формат json. < /P> Что может вызвать ошибку vangid_argument? Любые предложения по решению этой проблемы были бы очень оценены! Спасибо.
Я добавил новый параметр объекта в метод запроса post. Ниже приведен синтаксис метода на контроллере:
public void registerTask(@RequestBody MyRequestDto myRequestDto)
updated MyRequestDto class:
private final String existing1;
private final...
Я использую следующий код, чтобы отправить ответ на запрос в Google Verify API для проверки. Однако я столкнулся с ошибкой:
Verification Failed: 400 Bad Request
Response: {
error : {
code : 400,
message : Request contains an invalid argument. ,...
Я сейчас работаю с API Apache Fineract, чтобы программно создавать новые клиентские записи. Однако, когда я отправляю запрос POST в конечную точку/FinerAct-Provider/API/V1/клиентов, я получаю ошибку плохого запроса 400. Тело ответа выглядит...
Я работаю с API Apache Fineract, чтобы программно создавать новые клиентские записи. Однако, когда я отправляю запрос POST в конечную точку/FinerAct-Provider/API/V1/клиентов, я получаю ошибку плохого запроса 400. Тело ответа выглядит следующим...
Я работаю с API Apache Fineract, чтобы программно создавать новые клиентские записи. Однако, когда я отправляю запрос POST в конечную точку/FinerAct-Provider/API/V1/клиентов, я получаю ошибку плохого запроса 400. Тело ответа выглядит следующим...