AWS Chime: как подписать HTTP-запрос на создание API собрания при весенней загрузке?

Я не нашел никакого полезного способа сгенерировать подпись V4 в java для подписи AWS Chime HttpRequest. Я хочу использовать 3 API-интерфейса Aws Chime (создать собрание, создать участника и удалить собрание) внутри своего Java-кода.

Кто-нибудь может мне помочь!

Детали API:

URL: https://service.chime.aws.amazon.com/meetings

Body: {"ClientRequestToken": "AXEXAMPLE", "MediaRegion": "us-east-2"}

Заголовки: "content-type", "application/json" "host", "service.chime.aws.amazon.com" "x-amz-date", "20200526T094404Z" "authorization",?(Сгенерированная подпись)

Ключ API: JHDCHGEXAEXAMPLE Секретный ключ: 4sjfkkjffs/sfkkh/sfkj/example

private Response createMeeting() {
    OkHttpClient client = new OkHttpClient();
    Response response = null;

    MediaType mediaType = MediaType.parse("application/json");
    RequestBody body = RequestBody.create(mediaType, "{\n\t\"ClientRequestToken\": \"AXEXAMPLE\",\n   \"MediaRegion\": \"us-east-2\"\n}");
    Request request = new Request.Builder()
      .url("https://service.chime.aws.amazon.com/meetings")
      .post(body)
      .addHeader("content-type", "application/json")
      .addHeader("host", "service.chime.aws.amazon.com")
      .addHeader("content-length", "68")
      .addHeader("x-amz-date", getIsoDate())
      .addHeader("authorization", "?????????") //To be replaced by generated signature 
      .addHeader("cache-control", "no-cache")
      .build();
    try {
        response = client.newCall(request).execute();
        System.out.println("ResponseMessage===========> " + response.message());
    } catch (IOException e) {
        System.out.println("Error===========> " + e.getMessage());
    }
    return response;
}

Я получаю следующую ошибку: рассчитанная нами подпись запроса не соответствует предоставленной вами подписи. Проверьте свой ключ доступа к AWS и метод подписи. За подробностями обращайтесь к сервисной документации.

0 ответов

Другие вопросы по тегам