2017-06-26 16 views
3

Amazon Polly REST APIを使用しようとしています。
誰かが、私にこれをするのを手伝ってもらえますか?
私は、JavaとOkHttp3を使用して、この試みたのです:Amazon Polly API

String url = "https://polly.us-west-2.amazonaws.com/v1/speech"; 
    String postBody = "{\"OutputFormat\":\"mp3\",\"Text\":\"Some text to listen\",\"TextType\":\"text\",\"VoiceId\":\"Joanna\"}"; 

    MediaType mediaType = MediaType.parse("application/json; charset=utf-8"); 

    OkHttpClient client = new OkHttpClient.Builder() 
      .connectTimeout(30, TimeUnit.SECONDS) 
      .readTimeout(30, TimeUnit.SECONDS) 
      .build(); 



    Request request = new Request.Builder() 
      .url(url) 
      .addHeader("Authorization", "AWS <accessKey>:<secretKey>") 
      .post(RequestBody.create(mediaType, postBody)) 
      .build(); 

    Response response = client.newCall(request).execute(); 

をそして "403禁止された" の回答を受けました。それから、私はこのPOSTリクエストをオンラインon this serviceにしようとしましたが、これを受け取りました: enter image description here 私は間違っていますか?私は何を修正すべきですか?ありがとう!

Amazon docs:link
そして、SDKを使用するように勧めてください。


私はthisthisthisthisthisを読んで、まだ何も理解していません。

  1. 私のsecretKeyは秘密であり、暗号化を使用する必要があることを理解します。
  2. 私のパラメータ...私はhereを記述するとしてのようなリクエストを行う必要があるが、私は自分の要求を作成する方法を理解カント:method=POSThost=polly.us-west-2.amazonaws.comendpoint=https://polly.us-west-2.amazonaws.com/v1/speechregion=us-west-2content-type=application/jsonbody of post request={...}accessKey=...secretKey=... .....そして、このリクエストをOkHttpを使って作る方法は?助けてください!
+0

SDKを使用したいのはなぜですか? –

+0

@JohnRotenstein私はtomcatを使用しています.Maven/etcの嫌悪感を使用したくないので、APIを使用してPollyを使用する必要があります:) –

答えて

1

addHeader("Authorization", "AWS <accessKey>:<secretKey>")です。はAWSで行われません。秘密鍵は秘密です。

リクエストは、秘密鍵に基づく一連のHMAC-SHA反復を使用して署名することによって認証されます。

SDKを使用しない方が良い妥当な理由がありますが、署名を生成するためのドキュメントを読んで理解する必要があります。

AWSコマンドラインインターフェイス(AWS CLI)またはAWS SDKのいずれかを使用してAWSに要求すると、これらのツールは、ツールの設定時に指定したアクセスキーで自動的に要求を署名します。これらのツールを使用するときは、自分でリクエストに署名する方法を習得する必要はありません。ただし、AWSへのHTTPリクエストを手動で作成する場合は、自分でリクエストに署名する必要があります。

http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html

署名プロセスは、上記のリンクから始まる、詳細に説明します。

シグネチャバージョン4は、すべての地域のすべてのサービスでサポートされています。

+0

Javaでリクエストを作成するのに手伝ってもらえますか? –

+0

または、このリクエストをpolly APIに送信する方法はありますか?私は例を読んでいるが、要求をする方法を理解していない。私は質問を更新します –

+0

質問を更新しました –