Amazon Product Advertising APIはJavaでリクエストに署名しました

イェンス:

何時間もいじくり回してインターネット全体を何度か読んだ後、Product Advertising APIで使用するリクエストに署名する方法を理解できません。

これまでのところ、提供されたWSDLファイルからクライアントを生成することができました。これには、Amazonのチュートリアルを使用しました。あなたはそれをここで見つけることができます:

Webサービスクライアントを生成するためのチュートリアル

これまでのところ問題はありません。クライアントをテストするために、小さなコードを書きました。コードは、製品に関する情報を単に取得することを目的としています。製品はASINで指定されています。

コード:

package client;

import com.ECS.client.jax.AWSECommerceService;
import com.ECS.client.jax.AWSECommerceServicePortType;
import com.ECS.client.jax.ItemLookup;
import com.ECS.client.jax.ItemLookupResponse;
import com.ECS.client.jax.ItemLookupRequest;

public class Client {

  public static void main(String[] args) {
    System.out.println("API Test startet");

    AWSECommerceService service = new AWSECommerceService();
    AWSECommerceServicePortType port = service.getAWSECommerceServicePort();

    ItemLookupRequest itemLookup = new ItemLookupRequest();
    itemLookup.setIdType("ASIN");
    itemLookup.getItemId().add("B000RE216U");

    ItemLookup lookup = new ItemLookup();
    lookup.setAWSAccessKeyId("<mykeyishere>");
    lookup.getRequest().add(itemLookup);

    ItemLookupResponse response = port.itemLookup(lookup);

    String r = response.toString();
    System.out.println("response: " + r);

    System.out.println("API Test stopped");
  }
}

ご覧のとおり、リクエストに署名する部分はありません。使用した多くのクラスを調べたところ、リクエストに署名するためのメソッドが見つかりませんでした。

では、どのようにリクエストに署名するのですか?

私は実際にドキュメントで何かを見つけました:リクエスト認証

ただし、独自のAPIは使用しません。提案されたソリューションは、多かれ少なかれ手動での使用のみを目的としています。クライアントクラスを調べて、リクエストURLを取得し、リクエストのサインインに必要なすべてのパーツを自分で配置できるかどうかを調べました。しかし、そのような方法はありません。

誰かが私が間違っていることを指摘してくれることを願っています。


これが私が問題を解決するためにしたことです。クレジットはすべて、ジョンとアマゾンフォーラムのメンバーに贈られます。

概要を説明する前に、問題の解決に役立った投稿へのリンクを示します。Amazonフォーラムのフォーラム投稿

投稿にリンクされているawshandlerresolver.javaをダウンロードしました。自分のコードを変更したので、次のようになります。

package client;

import com.ECS.client.jax.AWSECommerceService;
import com.ECS.client.jax.AWSECommerceServicePortType;
import com.ECS.client.jax.ItemLookup;
import com.ECS.client.jax.ItemLookupResponse;
import com.ECS.client.jax.ItemLookupRequest;

public class Client {

  public static void main(String[] args) {
    System.out.println("API Test startet");

    AWSECommerceService service = new AWSECommerceService();
    service.setHandlerResolver(new AwsHandlerResolver("<Secret Key>"));  // important
    AWSECommerceServicePortType port = service.getAWSECommerceServicePort();

    ItemLookupRequest itemLookup = new ItemLookupRequest();
    itemLookup.setIdType("ASIN");
    itemLookup.getItemId().add("B000RE216U");

    ItemLookup lookup = new ItemLookup();
    lookup.setAWSAccessKeyId("<Access Key>"); // important
    lookup.getRequest().add(itemLookup);

    ItemLookupResponse response = port.itemLookup(lookup);

    String r = response.toString();
    System.out.println("response: " + r);   
    System.out.println("API Test stopped");
  }
}

最後のprintlnは多かれ少なかれ役に立たない。しかし、それは機能します。また、リンクされたWSDLジョンを使用して、新しいWebサービスクライアントを生成しました。質問に投稿したチュートリアルでURLを変更しました。

ジョン:

あなたがサービスを作成した後、これを試してください

service.setHandlerResolver(new AwsHandlerResolver(my_AWS_SECRET_KEY));

AwsHandlerResolverはBase64エンコーディングを使用するため、プロジェクトへの参照として追加するには、このクラスとこの jarファイルが必要です。

ファイル名はすべて小文字なので、AwsHandlerResolverファイルの名前をクラスの名前に変更する必要があります。

残りのコードは問題ないと思います。

WSDLはhttp://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdlです

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Java / SOAPを介したAmazon Product Advertising API

分類Dev

Amazon Product Advertising API C#の使用を開始する方法

分類Dev

How to set up an Amazon advertising API?

分類Dev

Amazon Product Advertising APIを介して倉庫取引をフィルタリングまたは決定しますか?

分類Dev

Amazon Advertising API:ASINレポートリクエストが「Missingcampaigntype」を返します

分類Dev

Amazon Product Advertising APIを使用して、特定の商品の商品配送国を取得するにはどうすればよいですか?

分類Dev

Amazon Product Advertising API-ItemSearchで100を超える結果を取得するにはどうすればよいですか?

分類Dev

Amazon Product Ads, is there an API to search for Categories?

分類Dev

python-amazon-product-apiインストールエラー

分類Dev

pythonanywhere経由のpython-amazon-simple-product-apiでのエラー400

分類Dev

Amazon MWS API:_POST_PRODUCT_DATA_のスタック順序

分類Dev

Amazon Advertising ProductAPIからすべての商品画像を取得する

分類Dev

Amazon Product APIエラー429:バッチリクエストのパフォーマンスと信頼性を最適化する方法は?

分類Dev

Amazon Product AdvertisingAPI検索エラー-追加のエラー情報なしの「itemsearcherrorresponse」

分類Dev

Amazon Product APIへのアクセスを許可するには、IAMグループにどのポリシーを追加する必要がありますか

分類Dev

Amazon Product AdvertisingAPIに接続する際の「Access-Control-Allow-Origin」エラー

分類Dev

Python 3 で動作する Amazon API リクエストに署名するための Python コードの更新

分類Dev

Amazon Alexa Smart Home SkillLWAのPostmanリクエストでクライアント認証に失敗しました

分類Dev

Amazon Marketplace Web Service (MWS) - add my offer to an existing product

分類Dev

C ++ / CXおよびAmazonProduct Advertising API

分類Dev

Amazon Lambda 関数が成功または失敗した場合にリクエストを送信する

分類Dev

Advertising Identifier(IDFA)が原因でアプリが拒否されました

分類Dev

Amazon S3 DELETEリクエストは成功しましたが、確認が返されませんか?

分類Dev

AmazonのDynamoDBに適したクエリビルダーはありますか?

分類Dev

AmazonはAdvertisingAPIではなく製品リストを取得するためのAPIを提供していますか

分類Dev

クライアント側のJavaScriptのみを使用してAmazonのItemLookupへのGETリクエストに適切に署名するにはどうすればよいですか?

分類Dev

Amazon s3 java sdk、openStream()が事前署名されたURLで呼び出されたときにSSLハンドシェイク例外が発生しました

分類Dev

アプリケーションは、最大リクエストレートよりも速くAmazon ElasticTranscoderにリクエストを送信しています

分類Dev

Selenium webdriver- how to select a product when all products have same class (amazon.in)

Related 関連記事

  1. 1

    Java / SOAPを介したAmazon Product Advertising API

  2. 2

    Amazon Product Advertising API C#の使用を開始する方法

  3. 3

    How to set up an Amazon advertising API?

  4. 4

    Amazon Product Advertising APIを介して倉庫取引をフィルタリングまたは決定しますか?

  5. 5

    Amazon Advertising API:ASINレポートリクエストが「Missingcampaigntype」を返します

  6. 6

    Amazon Product Advertising APIを使用して、特定の商品の商品配送国を取得するにはどうすればよいですか?

  7. 7

    Amazon Product Advertising API-ItemSearchで100を超える結果を取得するにはどうすればよいですか?

  8. 8

    Amazon Product Ads, is there an API to search for Categories?

  9. 9

    python-amazon-product-apiインストールエラー

  10. 10

    pythonanywhere経由のpython-amazon-simple-product-apiでのエラー400

  11. 11

    Amazon MWS API:_POST_PRODUCT_DATA_のスタック順序

  12. 12

    Amazon Advertising ProductAPIからすべての商品画像を取得する

  13. 13

    Amazon Product APIエラー429:バッチリクエストのパフォーマンスと信頼性を最適化する方法は?

  14. 14

    Amazon Product AdvertisingAPI検索エラー-追加のエラー情報なしの「itemsearcherrorresponse」

  15. 15

    Amazon Product APIへのアクセスを許可するには、IAMグループにどのポリシーを追加する必要がありますか

  16. 16

    Amazon Product AdvertisingAPIに接続する際の「Access-Control-Allow-Origin」エラー

  17. 17

    Python 3 で動作する Amazon API リクエストに署名するための Python コードの更新

  18. 18

    Amazon Alexa Smart Home SkillLWAのPostmanリクエストでクライアント認証に失敗しました

  19. 19

    Amazon Marketplace Web Service (MWS) - add my offer to an existing product

  20. 20

    C ++ / CXおよびAmazonProduct Advertising API

  21. 21

    Amazon Lambda 関数が成功または失敗した場合にリクエストを送信する

  22. 22

    Advertising Identifier(IDFA)が原因でアプリが拒否されました

  23. 23

    Amazon S3 DELETEリクエストは成功しましたが、確認が返されませんか?

  24. 24

    AmazonのDynamoDBに適したクエリビルダーはありますか?

  25. 25

    AmazonはAdvertisingAPIではなく製品リストを取得するためのAPIを提供していますか

  26. 26

    クライアント側のJavaScriptのみを使用してAmazonのItemLookupへのGETリクエストに適切に署名するにはどうすればよいですか?

  27. 27

    Amazon s3 java sdk、openStream()が事前署名されたURLで呼び出されたときにSSLハンドシェイク例外が発生しました

  28. 28

    アプリケーションは、最大リクエストレートよりも速くAmazon ElasticTranscoderにリクエストを送信しています

  29. 29

    Selenium webdriver- how to select a product when all products have same class (amazon.in)

ホットタグ

アーカイブ