Website authorization flow for Amazon Selling Partner APIs.
Here's an example for adding the middleware to a Rails app in config/initializers/omniauth.rb
:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :amazon_sp_api, ENV['AMAZON_SP_API_CLIENT_ID'], ENV['AMAZON_SP_API_CLIENT_SECRET'],
redirect_uri: "https://example.com/auth/amazon_sp_api/callback", # if you need to override the default URL generated by the gem
authorize_params: {
application_id: ENV['AMAZON_SP_API_APPLICATION_ID'],
version: 'beta', # If you app is in Draft state, this is required.
},
client_options: {
authorize_url: 'https://sellercentral.amazon.com/apps/authorize/consent',
site: Rails.env.production? ? 'https://sellingpartnerapi-na.amazon.com' : 'https://sandbox.sellingpartnerapi-na.amazon.com'
}
end
Here's an example if you are using Devise. Add this to config/initializers/devise.rb
:
config.omniauth :amazon_sp_api, ENV['AMAZON_SP_API_CLIENT_ID'], ENV['AMAZON_SP_API_CLIENT_SECRET'], {
redirect_uri: "https://example.com/auth/amazon_sp_api/callback", # if you need to override the default URL generated by the gem
authorize_params: {
application_id: ENV['AMAZON_SP_API_APPLICATION_ID'],
version: 'beta', # If you app is in Draft state, this is required.
},
}
Then update your User
model:
devise(
# Other Devise options
omniauth_providers: [:amazon_sp_api],
)