使用Rails Vacuum gem在Amazon Product Api中获取ItemId

时间:2016-01-31 07:38:26

标签: ruby-on-rails ruby amazon-web-services amazon-product-api vacuum

我正在我的rails应用程序中集成Amazon Product Api。我正在使用真空宝石进行这种集成。有两个主要页面。我通过此代码获取产品。

    requestd = Vacuum.new

    requestd.configure(
    aws_access_key_id: ENV["AWS_ACCESS_KEY_ID"],
    aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
    associate_tag: ENV['ASSOCIATE_TAG']
    )

    response = requestd.item_search(
    query: {
        'SearchIndex' => @category.search_index,
        'Keywords' => @category.keyword,
        'ResponseGroup' => "ItemAttributes,Images"
    }
    )

    hashed_products = response.to_h

    @products = []

    hashed_products['ItemSearchResponse']['Items']['Item'].each do |item|
      product = OpenStruct.new
      product.name = item['ItemAttributes']['Title']
      product.price = item['ItemAttributes']['ListPrice']['FormattedPrice'] if item['ItemAttributes']['ListPrice']
      product.url = item['DetailPageURL']
      product.feature = item['ItemAttributes']['Feature']
      product.image_url = item['LargeImage']['URL'] if item['LargeImage']
      product.link = item['ItemLinks']['ItemLink'][5]['URL']
      @products << product
    end

它提供了十个匹配请求的产品。但是当我想在我的应用程序中转到产品的详细信息页面并在我的应用程序中显示其各自的详细信息时,我需要在真空文档中给出该产品的ItemId。

response = request.item_lookup(
  query: {
    'ItemId' => '0679753354'
  }
)

但我无法获取此ID。当我在响应组中编写ItemIdItemIds时,我没有得到它,尽管这是一个可以根据Amazon Docs在ResponseGroup中编写的属性。我需要ItemId来执行项目循环操作,以便我分别获得该产品的评论和其他详细信息。

1 个答案:

答案 0 :(得分:1)

我不熟悉Ruby,但每种编程语言的方法都应该相同。 您要查找的 ItemId 属性称为 ASIN ,您应该可以通过以下方式获取它:

product.asin = item['ASIN']