amazon_product_advertising_client alternatives and similar packages
Based on the "Third Party APIs" category.
Alternatively, view amazon_product_advertising_client alternatives based on common mentions on social networks and blogs.
-
stripity_stripe
An Elixir Library for Stripe -
google-cloud
Elixir client libraries for accessing Google APIs. -
slack
Slack real time messaging and web API client in Elixir -
pigeon
iOS and Android push notifications for Elixir -
tentacat
Simple Elixir wrapper for the GitHub API -
gringotts
A complete payment library for Elixir and Phoenix Framework -
ethereumex
Elixir JSON-RPC client for the Ethereum blockchain -
statix
Fast and reliable Elixir client for StatsD-compatible servers -
facebook
Facebook Graph API Wrapper written in Elixir -
MongoosePush
MongoosePush is a simple Elixir RESTful service allowing to send push notification via FCM and/or APNS. -
commerce_billing
A payment processing library for Elixir -
ex_statsd
A statsd client implementation for Elixir. -
spotify_ex
Elixir wrapper for the Spotify Web API -
shopify
Easily access the Shopify API with Elixir. -
sendgrid
Create and send composable emails with Elixir and SendGrid. -
mailchimp
A basic Elixir wrapper for version 3 of the MailChimp API -
sparkpost
SparkPost client library for Elixir https://developers.sparkpost.com -
diplomat
Elixir library for interacting with Google's Cloud Datastore -
elixtagram
:camera: Instagram API client for the Elixir language (elixir-lang) -
forcex
Elixir library for the Force.com / Salesforce / SFDC REST API -
airbrakex
Elixir client for the Airbrake service. -
google_sheets
Elixir library for fetching Google Spreadsheet data in CSV format -
instrumental
An Elixir client for Instrumental -
pay_pal
:money_with_wings: PayPal REST API client for the Elixir language (elixir-lang) -
bitpay
Elixir core library for connecting to bitpay.com -
ex_gecko
Elixir SDK to communicate with Geckoboard's API. -
cashier
Cashier is an Elixir library that aims to be an easy to use payment gateway, whilst offering the fault tolerance and scalability benefits of being built on top of Erlang/OTP -
elixir_ipfs_api
The Elixir library that is used to communicate with the IPFS REST endpoint. -
ExTrello
An Elixir library for interfacing with the Trello API -
pusher
Elixir library to access the Pusher REST API. -
dogstatsd
An Elixir client for DogStatsd https://www.datadoghq.com/ -
airbrake
An Elixir notifier to the Airbrake/Errbit. System-wide error reporting enriched with the information from Plug and Phoenix channels.
Learn Elixir in as little as 12 Weeks
Do you think we are missing an alternative of amazon_product_advertising_client or a related project?
README
Amazon Product Advertising Client
Configure
Add your AWS authentication credentials to config/config.exs
:
Hex: https://hex.pm/packages/amazon_product_advertising_client
# in your mix.exs
{:amazon_product_advertising_client, "~> 0.2.1"}
# in your config/config.exs
config :amazon_product_advertising_client,
associate_tag: "YourAssociateTag",
aws_access_key_id: "YourAccessKeyID",
aws_secret_access_key: "YourSecretAccessKey",
marketplace_host: "webservices.amazon.ca" # If not specified the default value is webservices.amazon.com
Usage and Examples
Both of the functions return an %HTTPoison.Response{} struct. This Amazon API responds with XML, so you will most likely want to parse the body using a library such as SweetXml.
Search
Create a search params struct and execute the search, for example:
alias AmazonProductAdvertisingClient.ItemSearch
def search_for_item do
%ItemSearch{"MaximumPrice": "25", "Keywords": "long sleeve shirt"} |> ItemSearch.execute
end
Lookup
alias AmazonProductAdvertisingClient.ItemLookup
# e.g. an ISBN of 9781680502992
def lookup_book_by_isbn(isbn) do
%ItemLookup{
IdType: "ISBN",
ItemId: isbn,
SearchIndex: "Books"}
|> ItemLookup.execute()
end
Lookup and Parse Response
# Modules needed.
alias AmazonProductAdvertisingClient.ItemLookup
import SweetXml
# Returns a map with 'title' and 'detail_page_url' keys
def lookup_book_info(isbn) do
lookup_struct =
%ItemLookup{
IdType: "ISBN",
ItemId: isbn,
SearchIndex: "Books"}
case ItemLookup.execute(lookup_struct) do
{:ok, %HTTPoison.Response{body: body}} ->
body |> parse_xml_body()
end
end
# The XML response from Amazon is voluminous. There are many fields to retrieve,
# for this example we pull the book's title and Amazon URL.
def parse_xml_body(body) do
body
|> SweetXml.xmap(
title: ~x"//ItemLookupResponse/Items/Item/ItemAttributes/Title/text()",
detail_page_url: ~x"//ItemLookupResponse/Items/Item/DetailPageURL/text()",
)
end