LoginSignup
6

More than 5 years have passed since last update.

Keepa APIのProduct Finderで条件にあったAmazonの商品を検索する方法(GAS ver.)

Last updated at Posted at 2018-06-07

Keepa本家の解説ページ https://keepa.com/#!discuss/t/product-finder/5473

初めに

GETだと文字数が足りず、どうしてもPOSTでリクエストしたくて試行錯誤したのでうまくいったコードを載せておきます。

サンプルコード

keepa_product_finder_sample.gas.js
  const key = 'APIキーを入力してください';
  const queryJSON = {
    "perPage": 100, //最低50 この数値分検索結果を取得します
    "page": 0, //ページを指定します 例えばperpageが100の時、page=0なら検索結果の1~100番目が、page=1なら101~200番目の結果が返ってきます
    "productType" : 0,
    "rootCategory" : "2127209051", //ルートカテゴリで絞りたい場合は指定します 複数のルートカテゴリを同時に指定することはできません
    "title" : "ノートパソコン -Apple",//タイトルをキーワード検索します -だけでもOKです めちゃくちゃ長いキーワードを指定してもPOSTならいけます

    "avg90_NEW_gte" : 30000, //直近90日の新品価格の平均が30,000円以上
    "current_SALES_gte": 1000, //現在のランキングが1,000位以上
    "current_SALES_lte": 20000, //現在のランキングが20,000位以下
    "current_LISTPRICE_gte": 30000, //リスト価格(コンディションに関わらず全ての出品)が30,000円以下の商品を弾けます → 結果に30,000円以下の商品が結構含まれてて原因不明です…
    "isPrimeExclusive" : false //Primeでは無い商品も検索されますが、通常出荷とFBA出荷の両方の出品がある商品がマッチするのであって、FBA出品が0な商品だけで絞れるという訳では無いです
  };

  const request =  UrlFetchApp.fetch('https://api.keepa.com/query?domain=5&key=' + key,{
    'method' : 'post',
    'headers' : { 'Connection' : 'keep-alive' },
    'payload' : { 'selection' : JSON.stringify(queryJSON)}, //POSTするときはselectionキーにqueryJSONをString化して設定します
  });

  const response = JSON.parse(request.getContentText());
  const asinList = response.asinList; //条件にあったASINの配列
  Logger.log('この条件にマッチするASINの合計数: ' + response.totalResults);//マッチする商品数がperPageより多い場合、asinList.length = perPage ですが、totalResultsはそれ以上になります

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6