AmazonアソシエイトのSigned Requests HelperでアフィリエイトURLを生成する
AmazonアソシエイトのAPI(Amazon Product Advertising API)を利用するには、
URLの生成時に署名を付加する必要があります。
その為、ちょっとURLで取得したデータを確認するのが面倒なのですが、
署名を自動で行って動作確認ができるサイトが公式に用意されています。
クエリ動作の確認などが都度行えますので便利です。
AmazonアソシエイトのSigned Requests HelperでアフィリエイトURLを生成する
AmazonアソシエイトのSigned Requests Helperは以下のページです。
Signed Requests Helper – Amazon Product Advertising API
「AWSAccessKeyId」「AWS Secret Access Key」の入力
では、実際に利用してみます。
最上部の「AWSAccessKeyId」「AWS Secret Access Key」フィールドに各自のキーを入力します。
キーは「認証キー(アクセスキー/シークレットキー)」のセットで、
以下手順で確認ができます。
リクエストURLの準備
AWSAccessKeyIdとAWS Secret Access Keyのセットをフィールドに入力したら、
発行するクエリを含むURLを作ります。
Amazonアソシエイト・アフィリエイトAPI(Amazon Product Advertising API)の
リクエストを行う際の必須となるパラメータは原則3つです。
それに付随して必要になる商品IDなどを付加しURLを組み立てますが、
Signed Requests Helperでは「AWSAccessKeyId(上記で入力済)」は、
テキストフィールドのURLに入力がなくても自動で補完してくれます。
以下の様な例です。
http://ecs.amazonaws.jp/onca/xml?Operation=ItemLookup&IdType=ASIN&ItemId=B0002U3ID4
これと別に、アフィリエイトのトラッキングIDが必須になりますので、
トラッキングID(AssociateTag)を付加します。
http://ecs.amazonaws.jp/onca/xml?Operation=ItemLookup&IdType=ASIN&ItemId=B0002U3ID4&AssociateTag=xn--n8j2sc8dt093e-22
リクエストURLをテキストエリアへ貼り付け
作成したURLを「Unsigned URL:」のテキストエリアに入力します。
入力したら「Display Signed URL」ボタンをクリックします。
やることはこれだけです。
※ここではアクセスキーなどもフィールドに入力しています。(画像はイメージです)
前述の例を入力して実行すると、最下部の「Signed URL:」にこのようなURLが表示されます。
http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyId=AKIAJKGFBRV5P3NCKQ2Q&AssociateTag=xn--n8j2sc8dt093e-22&IdType=ASIN&ItemId=B0002U3ID4&Operation=ItemLookup&Timestamp=2018-08-24T05%3A47%3A56.000Z&Signature=Vh0fIPjQldN39UNHcC6VpyBkUeSV8rsJDF0QkXkL3QY%3D
赤字で示したパラメータは、このWeb画面で自動的に補完されたものです。
本来必須とされている「Service=AWSECommerceService(固定)」がありませんが、
それでもレスポンスは正しく返してきます。
「Service=AWSECommerceService」は念のため付けておく、
おまじない程度でいいかもしれません。
表示されている各テキストエリアはAWSが処理した各結果が表示されてきます。
基本的には自分でURLを生成する際にも、
この手順でプログラムを生成すればいいというヒントにもなります。
各項目は以下の様なイメージです。
- 「Unsigned URL:」目的のURLを入力する
- 「Name-Value Pairs:」クエリ変数名と値のセットを1行ごとに表示
- 「Sorted Pairs:」クエリ変数名で昇順ソートしたもの
- 「String-To-Sign:」リクエストURLの署名対象文字列(URL)
- 「Signed URL:」URLに署名を行って生成されたURL(実発行URL)
このステップがそのまま署名を行うステップと同じと言う事です。
この場合、得られたXMLは以下のようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
This XML file does not appear to have any style information associated with it. The document tree is shown below. <ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01"> <OperationRequest> <HTTPHeaders> <Header Name="UserAgent" Value="Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"/> </HTTPHeaders> <RequestId>cf28a730-88ac-4257-bed0-318092dc4ce2</RequestId> <Arguments> <Argument Name="AWSAccessKeyId" Value="AKIAJKGFBRV5P3NCKQ2Q"/> <Argument Name="AssociateTag" Value="xn--n8j2sc8dt093e-22"/> <Argument Name="IdType" Value="ASIN"/> <Argument Name="ItemId" Value="B0002U3ID4"/> <Argument Name="Operation" Value="ItemLookup"/> <Argument Name="Timestamp" Value="2018-08-24T05:47:56.000Z"/> <Argument Name="Signature" Value="Vh0fIPjQldN39UNHcC6VpyBkUeSV8rsJDF0QkXkL3QY="/> <Argument Name="Service" Value="AWSECommerceService"/> </Arguments> <RequestProcessingTime>0.0539243230000000</RequestProcessingTime> </OperationRequest> <Items> <Request> <IsValid>True</IsValid> <ItemLookupRequest> <IdType>ASIN</IdType> <ItemId>B0002U3ID4</ItemId> <ResponseGroup>Small</ResponseGroup> <VariationPage>All</VariationPage> </ItemLookupRequest> </Request> <Item> <ASIN>B0002U3ID4</ASIN> <DetailPageURL> https://www.amazon.co.jp/%E3%82%BF%E3%82%AB%E3%83%A9%E3%83%88%E3%83%9F%E3%83%BC-TAKARA-TOMY-%E3%83%97%E3%83%A9%E3%83%AC%E3%83%BC%E3%83%AB-%E3%83%AC%E3%83%BC%E3%83%AB%E3%82%BB%E3%83%83%E3%83%88/dp/B0002U3ID4?SubscriptionId=AKIAJKGFBRV5P3NCKQ2Q&tag=xn--n8j2sc8dt093e-22&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B0002U3ID4 </DetailPageURL> <ItemLinks> <ItemLink> <Description>Add To Wishlist</Description> <URL> https://www.amazon.co.jp/gp/registry/wishlist/add-item.html?asin.0=B0002U3ID4&SubscriptionId=AKIAJKGFBRV5P3NCKQ2Q&tag=xn--n8j2sc8dt093e-22&linkCode=xm2&camp=2025&creative=5143&creativeASIN=B0002U3ID4 </URL> </ItemLink> <ItemLink> <Description>Tell A Friend</Description> <URL> https://www.amazon.co.jp/gp/pdp/taf/B0002U3ID4?SubscriptionId=AKIAJKGFBRV5P3NCKQ2Q&tag=xn--n8j2sc8dt093e-22&linkCode=xm2&camp=2025&creative=5143&creativeASIN=B0002U3ID4 </URL> </ItemLink> <ItemLink> <Description>All Customer Reviews</Description> <URL> https://www.amazon.co.jp/review/product/B0002U3ID4?SubscriptionId=AKIAJKGFBRV5P3NCKQ2Q&tag=xn--n8j2sc8dt093e-22&linkCode=xm2&camp=2025&creative=5143&creativeASIN=B0002U3ID4 </URL> </ItemLink> <ItemLink> <Description>All Offers</Description> <URL> https://www.amazon.co.jp/gp/offer-listing/B0002U3ID4?SubscriptionId=AKIAJKGFBRV5P3NCKQ2Q&tag=xn--n8j2sc8dt093e-22&linkCode=xm2&camp=2025&creative=5143&creativeASIN=B0002U3ID4 </URL> </ItemLink> </ItemLinks> <ItemAttributes> <Manufacturer>タカラトミー(TAKARA TOMY)</Manufacturer> <ProductGroup>Toy</ProductGroup> <Title>プラレール レールセット(A)</Title> </ItemAttributes> </Item> </Items> </ItemLookupResponse> |
商品情報が最低限返されているのがわかります。
ただこれでは足りない情報もあるでしょうから、
ちゃんと「&ResponseGroup=」で受け取りたい情報を指定します。
商品に割当てられている画像を取得する例
今回の例では、APIを利用して対象商品に紐づけられている画像のリストをXMLで取得してみます。
何故かって?Amazonアフィリのツールなど様々なリンク生成サービスでは、
取得してくる画像が代表画像(Primary)だけしか取得できないケースが多いからです。
今回、2番目以降の画像が欲しく、この記事を作成するに至りました。
Signed Requests Helper中程にサンプルURLが書かれていますので参考にします。
Here is an sample unsigned URL you can use to get started with:
http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService
&Version=2011-08-01
&AssociateTag=PutYourAssociateTagHere
&Operation=ItemSearch
&SearchIndex=Books
&Keywords=harry+potter
URLのレスポンスで受け取る対象を指定するには、
以下の「Response Element」が利用できます。
Response Elements – Product Advertising API
今回は以下のようなURLで実行します。
1 |
http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&Operation=ItemLookup&ResponseGroup=Images&IdType=ASIN&ItemId=B0002U3ID4&AWSAccessKeyId=AKIAJKGFBRV5P3NCKQ2Q&AssociateTag=xn--n8j2sc8dt093e-22 |
各行に分割するとこのような要求です。
1 2 3 4 5 6 7 |
http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService &Operation=ItemLookup &ResponseGroup=Images &IdType=ASIN &ItemId=B0002U3ID4 &AWSAccessKeyId=AKIAJKGFBRV5P3NCKQ2Q &AssociateTag=xn--n8j2sc8dt093e-22 |
ここでタイムスタンプは不要なの?と思われるかもしれませんが、
このツールではタイムスタンプと署名を補完して、URLの生成を行ってくれます。
実行結果は以下のようになっています。
生成されたURLはこのようなURL(Signed URL:)です。
リンクの有効時間がタイムスタンプから一定時間内に限られていますので、
以下URLはしばらくすると無効になります。
その為、毎回プログラムなどを利用して都度生成する必要があります。
http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyId=AKIAJKGFBRV5P3NCKQ2Q&AssociateTag=xn--n8j2sc8dt093e-22&IdType=ASIN&ItemId=B0002U3ID4&Operation=ItemLookup&ResponseGroup=Images&Service=AWSECommerceService&Timestamp=2018-08-20T08%3A02%3A19.000Z&Signature=eoPp%2B37Wrv%2BZtHKrIVnmOMyNIxw3U8zL57w%2FBkJ6N74%3D
アクセスすると、このようなXMLを受け取る事ができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
<ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01"> <OperationRequest> <HTTPHeaders> <Header Name="UserAgent" Value="Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"/> </HTTPHeaders> <RequestId>0788103b-1207-43a9-9f11-d1fdad84c1ea</RequestId> <Arguments> <Argument Name="AWSAccessKeyId" Value="AKIAJKGFBRV5P3NCKQ2Q"/> <Argument Name="AssociateTag" Value="xn--n8j2sc8dt093e-22"/> <Argument Name="IdType" Value="ASIN"/> <Argument Name="ItemId" Value="B0002U3ID4"/> <Argument Name="Operation" Value="ItemLookup"/> <Argument Name="ResponseGroup" Value="Images"/> <Argument Name="Service" Value="AWSECommerceService"/> <Argument Name="Timestamp" Value="2018-08-20T08:02:19.000Z"/> <Argument Name="Signature" Value="eoPp+37Wrv+ZtHKrIVnmOMyNIxw3U8zL57w/BkJ6N74="/> </Arguments> <RequestProcessingTime>0.0034212810000000</RequestProcessingTime> </OperationRequest> <Items> <Request> <IsValid>True</IsValid> <ItemLookupRequest> <IdType>ASIN</IdType> <ItemId>B0002U3ID4</ItemId> <ResponseGroup>Images</ResponseGroup> <VariationPage>All</VariationPage> </ItemLookupRequest> </Request> <Item> <ASIN>B0002U3ID4</ASIN> <SmallImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL75_.jpg </URL> <Height Units="pixels">61</Height> <Width Units="pixels">75</Width> </SmallImage> <MediumImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL160_.jpg </URL> <Height Units="pixels">131</Height> <Width Units="pixels">160</Width> </MediumImage> <LargeImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL.jpg </URL> <Height Units="pixels">408</Height> <Width Units="pixels">500</Width> </LargeImage> <ImageSets> <ImageSet Category="variant"> <SwatchImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L._SL30_.jpg </URL> <Height Units="pixels">24</Height> <Width Units="pixels">30</Width> </SwatchImage> <SmallImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L._SL75_.jpg </URL> <Height Units="pixels">61</Height> <Width Units="pixels">75</Width> </SmallImage> <ThumbnailImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L._SL75_.jpg </URL> <Height Units="pixels">61</Height> <Width Units="pixels">75</Width> </ThumbnailImage> <TinyImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L._SL110_.jpg </URL> <Height Units="pixels">90</Height> <Width Units="pixels">110</Width> </TinyImage> <MediumImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L._SL160_.jpg </URL> <Height Units="pixels">130</Height> <Width Units="pixels">160</Width> </MediumImage> <LargeImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L.jpg </URL> <Height Units="pixels">407</Height> <Width Units="pixels">500</Width> </LargeImage> </ImageSet> <ImageSet Category="variant"> <SwatchImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL._SL30_.jpg </URL> <Height Units="pixels">14</Height> <Width Units="pixels">30</Width> </SwatchImage> <SmallImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL._SL75_.jpg </URL> <Height Units="pixels">36</Height> <Width Units="pixels">75</Width> </SmallImage> <ThumbnailImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL._SL75_.jpg </URL> <Height Units="pixels">36</Height> <Width Units="pixels">75</Width> </ThumbnailImage> <TinyImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL._SL110_.jpg </URL> <Height Units="pixels">52</Height> <Width Units="pixels">110</Width> </TinyImage> <MediumImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL._SL160_.jpg </URL> <Height Units="pixels">76</Height> <Width Units="pixels">160</Width> </MediumImage> <LargeImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL.jpg </URL> <Height Units="pixels">237</Height> <Width Units="pixels">500</Width> </LargeImage> </ImageSet> <ImageSet Category="variant"> <SwatchImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L._SL30_.jpg </URL> <Height Units="pixels">30</Height> <Width Units="pixels">22</Width> </SwatchImage> <SmallImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L._SL75_.jpg </URL> <Height Units="pixels">75</Height> <Width Units="pixels">56</Width> </SmallImage> <ThumbnailImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L._SL75_.jpg </URL> <Height Units="pixels">75</Height> <Width Units="pixels">56</Width> </ThumbnailImage> <TinyImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L._SL110_.jpg </URL> <Height Units="pixels">110</Height> <Width Units="pixels">82</Width> </TinyImage> <MediumImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L._SL160_.jpg </URL> <Height Units="pixels">160</Height> <Width Units="pixels">120</Width> </MediumImage> <LargeImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L.jpg </URL> <Height Units="pixels">500</Height> <Width Units="pixels">375</Width> </LargeImage> </ImageSet> <ImageSet Category="primary"> <SwatchImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL30_.jpg </URL> <Height Units="pixels">24</Height> <Width Units="pixels">30</Width> </SwatchImage> <SmallImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL75_.jpg </URL> <Height Units="pixels">61</Height> <Width Units="pixels">75</Width> </SmallImage> <ThumbnailImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL75_.jpg </URL> <Height Units="pixels">61</Height> <Width Units="pixels">75</Width> </ThumbnailImage> <TinyImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL110_.jpg </URL> <Height Units="pixels">90</Height> <Width Units="pixels">110</Width> </TinyImage> <MediumImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL160_.jpg </URL> <Height Units="pixels">131</Height> <Width Units="pixels">160</Width> </MediumImage> <LargeImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL.jpg </URL> <Height Units="pixels">408</Height> <Width Units="pixels">500</Width> </LargeImage> </ImageSet> </ImageSets> </Item> </Items> </ItemLookupResponse> |
XMLに対象のASIN(商品コード)に紐づいている画像の各サイズが表示されています。
ちなみに、普通にアソシエイトの商品リンクを生成するとこのような感じです。
amazon Promotion
画像単独でイメージ大を選択しても、画像は代表画像しか選択することができません。
amazon Promotion
しかし、Amazonのページを確認すればわかりますが、
この商品には4つの画像で商品イメージの確認ができます。
この4つのイメージを上記XMLではURLが返されています。
さすがAPI ^^
※ギャラリー表示の為、保存し表示しています。(著作権等はAmazonに帰属します)
各画像URL
https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL.jpg
https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L.jpg
https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL.jpg
https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L.jpg
このようにして、APIなら商品に指定されているその他の画像のURLも取得することができます。
エラーメッセージはXML要求をして確認する
尚、実行時にはアソシエイトIDなど必須の項目があります。
不足している場合はXMLにてエラーメッセージの確認ができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01"> <OperationRequest> <HTTPHeaders> <Header Name="UserAgent" Value="Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"/> </HTTPHeaders> <RequestId>31807e6d-8f2d-4ccf-918d-40aaf2d01b52</RequestId> <Arguments> <Argument Name="AWSAccessKeyId" Value="AKIAJKGFBRV5P3NCKQ2Q"/> <Argument Name="IdType" Value="ASIN"/> <Argument Name="ItemId" Value="B0002U3ID4"/> <Argument Name="Operation" Value="ItemLookup"/> <Argument Name="ResponseGroup" Value="Images"/> <Argument Name="Service" Value="AWSECommerceService"/> <Argument Name="Timestamp" Value="2018-08-20T08:01:25.000Z"/> <Argument Name="Signature" Value="g39hUnXCluE8x97MEoxNz3h/tFuTR4dRNN7rYT3rZ+o="/> </Arguments> <RequestProcessingTime>0.0010259880000000</RequestProcessingTime> </OperationRequest> <Items> <Request> <IsValid>False</IsValid> <ItemLookupRequest> <IdType>ASIN</IdType> <ItemId>B0002U3ID4</ItemId> <ResponseGroup>Images</ResponseGroup> <VariationPage>All</VariationPage> </ItemLookupRequest> <Errors> <Error> <Code>AWS.MissingParameters</Code> <Message> リクエストには、必要なパラメータが含まれていません。必要なパラメータには、AssociateTagなどがあります。 </Message> </Error> </Errors> </Request> </Items> </ItemLookupResponse> |
画像以外のアフィリリンクを取得できるように変更
さて、今まではXMLで他の画像を要求するところまででした。
商品に対する発リンクURLが得られていませんでしたので要求を変更します。
画像の取得で利用したクエリ文字列に含まれていた以下の変数の値を変更します。
&ResponseGroup=Images
今回はこのように変更しています。
ResponseGroup=Images,Small
※大文字小文字は区別されます。smallでは動作しません。
「Small
」指定は「ResponseGroup
」を指定しなかった場合のデフォルト動作です。
備考には以下の様な記述があります。
この応答グループは、ItemLookup、ItemSearch、またはSimilarityLookupとともに、レスポンス内の項目に関する基本情報を返すためによく使用されます。
似た「ResponseGroup
」に「Large
」と「Medium
」もありますが、
こちらは以下のように書かれていますので、運用環境では使用しないことをお勧めします。
Large(又はMedium)応答グループは、応答内の項目に関する多くの情報を返します。 Large(又はMedium)レスポンスグループは、デモンストレーション目的のみです。 本番用アプリケーション用ではありません。 アプリケーションでは、必要な応答グループを正確に使用して、待ち時間と応答サイズを削減する必要があります。
ただ、以下ヘルプには特にプロモーション目的の記述はありませんでした。
使うこと自体は問題がない模様。
Large レスポンスグループは、Amazon リテール Web サイトにあるような商品の詳細ページを構築するのに適しています。
受け取れるレスポンスは以下のようになります。
要求URLは以下です。
http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyId=AKIAJKGFBRV5P3NCKQ2Q&AssociateTag=xn--n8j2sc8dt093e-22&IdType=ASIN&ItemId=B0002U3ID4&Operation=ItemLookup&ResponseGroup=Images%2CSmall&Timestamp=2018-08-24T06%3A07%3A58.000Z&Signature=3Thd1PQED3V9KUnj%2F21UIFP%2F%2FN5zigTiQvHt%2FxrXmG4%3D
実際にリクエストするとこのようなXMLが返されます。
どうでしょうか、画像以外の商品詳細ページのURL(DetailPageURL)などが返され、
ちゃんとトラッキングIDが含まれたURLになっています。(アフィリンクになっている)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 |
<ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01"> <OperationRequest> <HTTPHeaders> <Header Name="UserAgent" Value="Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"/> </HTTPHeaders> <RequestId>5a2eac1e-9cbe-4582-b0c2-bf3a56572de4</RequestId> <Arguments> <Argument Name="AWSAccessKeyId" Value="AKIAJKGFBRV5P3NCKQ2Q"/> <Argument Name="AssociateTag" Value="xn--n8j2sc8dt093e-22"/> <Argument Name="IdType" Value="ASIN"/> <Argument Name="ItemId" Value="B0002U3ID4"/> <Argument Name="Operation" Value="ItemLookup"/> <Argument Name="ResponseGroup" Value="Images,Small"/> <Argument Name="Timestamp" Value="2018-08-24T06:07:58.000Z"/> <Argument Name="Signature" Value="3Thd1PQED3V9KUnj/21UIFP//N5zigTiQvHt/xrXmG4="/> <Argument Name="Service" Value="AWSECommerceService"/> </Arguments> <RequestProcessingTime>0.0043867300000000</RequestProcessingTime> </OperationRequest> <Items> <Request> <IsValid>True</IsValid> <ItemLookupRequest> <IdType>ASIN</IdType> <ItemId>B0002U3ID4</ItemId> <ResponseGroup>Images</ResponseGroup> <ResponseGroup>Small</ResponseGroup> <VariationPage>All</VariationPage> </ItemLookupRequest> </Request> <Item> <ASIN>B0002U3ID4</ASIN> <DetailPageURL> https://www.amazon.co.jp/%E3%82%BF%E3%82%AB%E3%83%A9%E3%83%88%E3%83%9F%E3%83%BC-TAKARA-TOMY-%E3%83%97%E3%83%A9%E3%83%AC%E3%83%BC%E3%83%AB-%E3%83%AC%E3%83%BC%E3%83%AB%E3%82%BB%E3%83%83%E3%83%88/dp/B0002U3ID4?SubscriptionId=AKIAJKGFBRV5P3NCKQ2Q&tag=xn--n8j2sc8dt093e-22&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B0002U3ID4 </DetailPageURL> <ItemLinks> <ItemLink> <Description>Add To Wishlist</Description> <URL> https://www.amazon.co.jp/gp/registry/wishlist/add-item.html?asin.0=B0002U3ID4&SubscriptionId=AKIAJKGFBRV5P3NCKQ2Q&tag=xn--n8j2sc8dt093e-22&linkCode=xm2&camp=2025&creative=5143&creativeASIN=B0002U3ID4 </URL> </ItemLink> <ItemLink> <Description>Tell A Friend</Description> <URL> https://www.amazon.co.jp/gp/pdp/taf/B0002U3ID4?SubscriptionId=AKIAJKGFBRV5P3NCKQ2Q&tag=xn--n8j2sc8dt093e-22&linkCode=xm2&camp=2025&creative=5143&creativeASIN=B0002U3ID4 </URL> </ItemLink> <ItemLink> <Description>All Customer Reviews</Description> <URL> https://www.amazon.co.jp/review/product/B0002U3ID4?SubscriptionId=AKIAJKGFBRV5P3NCKQ2Q&tag=xn--n8j2sc8dt093e-22&linkCode=xm2&camp=2025&creative=5143&creativeASIN=B0002U3ID4 </URL> </ItemLink> <ItemLink> <Description>All Offers</Description> <URL> https://www.amazon.co.jp/gp/offer-listing/B0002U3ID4?SubscriptionId=AKIAJKGFBRV5P3NCKQ2Q&tag=xn--n8j2sc8dt093e-22&linkCode=xm2&camp=2025&creative=5143&creativeASIN=B0002U3ID4 </URL> </ItemLink> </ItemLinks> <SmallImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL75_.jpg </URL> <Height Units="pixels">61</Height> <Width Units="pixels">75</Width> </SmallImage> <MediumImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL160_.jpg </URL> <Height Units="pixels">131</Height> <Width Units="pixels">160</Width> </MediumImage> <LargeImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL.jpg </URL> <Height Units="pixels">408</Height> <Width Units="pixels">500</Width> </LargeImage> <ImageSets> <ImageSet Category="variant"> <SwatchImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L._SL30_.jpg </URL> <Height Units="pixels">24</Height> <Width Units="pixels">30</Width> </SwatchImage> <SmallImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L._SL75_.jpg </URL> <Height Units="pixels">61</Height> <Width Units="pixels">75</Width> </SmallImage> <ThumbnailImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L._SL75_.jpg </URL> <Height Units="pixels">61</Height> <Width Units="pixels">75</Width> </ThumbnailImage> <TinyImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L._SL110_.jpg </URL> <Height Units="pixels">90</Height> <Width Units="pixels">110</Width> </TinyImage> <MediumImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L._SL160_.jpg </URL> <Height Units="pixels">130</Height> <Width Units="pixels">160</Width> </MediumImage> <LargeImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61zVZrwks5L.jpg </URL> <Height Units="pixels">407</Height> <Width Units="pixels">500</Width> </LargeImage> </ImageSet> <ImageSet Category="variant"> <SwatchImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL._SL30_.jpg </URL> <Height Units="pixels">14</Height> <Width Units="pixels">30</Width> </SwatchImage> <SmallImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL._SL75_.jpg </URL> <Height Units="pixels">36</Height> <Width Units="pixels">75</Width> </SmallImage> <ThumbnailImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL._SL75_.jpg </URL> <Height Units="pixels">36</Height> <Width Units="pixels">75</Width> </ThumbnailImage> <TinyImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL._SL110_.jpg </URL> <Height Units="pixels">52</Height> <Width Units="pixels">110</Width> </TinyImage> <MediumImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL._SL160_.jpg </URL> <Height Units="pixels">76</Height> <Width Units="pixels">160</Width> </MediumImage> <LargeImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41MUmXglaFL.jpg </URL> <Height Units="pixels">237</Height> <Width Units="pixels">500</Width> </LargeImage> </ImageSet> <ImageSet Category="variant"> <SwatchImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L._SL30_.jpg </URL> <Height Units="pixels">30</Height> <Width Units="pixels">22</Width> </SwatchImage> <SmallImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L._SL75_.jpg </URL> <Height Units="pixels">75</Height> <Width Units="pixels">56</Width> </SmallImage> <ThumbnailImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L._SL75_.jpg </URL> <Height Units="pixels">75</Height> <Width Units="pixels">56</Width> </ThumbnailImage> <TinyImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L._SL110_.jpg </URL> <Height Units="pixels">110</Height> <Width Units="pixels">82</Width> </TinyImage> <MediumImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L._SL160_.jpg </URL> <Height Units="pixels">160</Height> <Width Units="pixels">120</Width> </MediumImage> <LargeImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/41htSCQAw9L.jpg </URL> <Height Units="pixels">500</Height> <Width Units="pixels">375</Width> </LargeImage> </ImageSet> <ImageSet Category="primary"> <SwatchImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL30_.jpg </URL> <Height Units="pixels">24</Height> <Width Units="pixels">30</Width> </SwatchImage> <SmallImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL75_.jpg </URL> <Height Units="pixels">61</Height> <Width Units="pixels">75</Width> </SmallImage> <ThumbnailImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL75_.jpg </URL> <Height Units="pixels">61</Height> <Width Units="pixels">75</Width> </ThumbnailImage> <TinyImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL110_.jpg </URL> <Height Units="pixels">90</Height> <Width Units="pixels">110</Width> </TinyImage> <MediumImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL._SL160_.jpg </URL> <Height Units="pixels">131</Height> <Width Units="pixels">160</Width> </MediumImage> <LargeImage> <URL> https://images-fe.ssl-images-amazon.com/images/I/61qka0tHyQL.jpg </URL> <Height Units="pixels">408</Height> <Width Units="pixels">500</Width> </LargeImage> </ImageSet> </ImageSets> <ItemAttributes> <Manufacturer>タカラトミー(TAKARA TOMY)</Manufacturer> <ProductGroup>Toy</ProductGroup> <Title>プラレール レールセット(A)</Title> </ItemAttributes> </Item> </Items> </ItemLookupResponse> |
後は、得られたXMLをプログラムで走査し、
必要な情報を使ってアフィリエイトリンクを作るという流れになります。
この「Signed Requests Helper」が行っている署名ステップは、
一つずつ見ていくと、プログラムを組み立てる場合の理解を深めてくれます。
当サイト内のコンテンツおよび画像を含むすべてにおいて、管理人が著作権を保持しております。
当サイトでご紹介しております写真につきましては著作権の放棄はしませんが、
ライセンスフリーでご利用いただいて構いません。
コンテンツを有益であると感じていただけましたら非常に光栄です。
ありがとうございます。
サイト内コンテンツを引用される際には、出典元として当サイト(個別記事)へのリンクをお願いいたします。
申し訳ございませんが、無断転載、複製をお断りさせて頂いております。
公開日: