Skip to content
This repository has been archived by the owner on Sep 11, 2021. It is now read-only.

Sage/sageone_api_signer

Repository files navigation

Sage One API Signer

Warning: Request signing and noncing (the X-Signature and X-Nonce headers) is no longer checked in the Sage One API v3. This makes this library obsolete. Do not use this gem anymore!

Build Status

This gem handles the required signing of requests to the Sage One API.

The signing process is described in detail here: https://developers.sageone.com/docs#signing_your_requests

Installation

Add the sageone_api_signer to your application's Gemfile:

gem 'sageone_api_signer'

And then execute:

$ bundle

Or install the gem yourself:

$ gem install sageone_api_signer

Usage

To create a SageoneApiSigner instance, you need to provide the following data:

  @signer = SageoneApiSigner.new({
    request_method: 'post',
    url: 'https://api.sageone.com/test/accounts/v1/contacts?config_setting=foo',
    body_params: {
      'contact[contact_type_id]' => 1,
      'contact[name]' => 'My Customer'
    },
    signing_secret: 'YOUR_SIGNING_SECRET',
    access_token: 'YOUR_ACCESS_TOKEN',
  })

You can then generate the signature:

  @signer.signature
  => "g1Cteq+JHjJzXYn7FpaLF42BymQ=\n"

or even the request headers:

  @signer.request_headers("YOUR_APP_NAME")
  => {
  =>   'Authorization' => "Bearer 3a5cfe7c90a78276e247c73da7bf120fc5283693",
  =>   'X-Nonce' => "e673495125616bed53624a76db215a8a",
  =>   'X-Signature' => "g1Cteq+JHjJzXYn7FpaLF42BymQ=\n",
  =>   'Accept' => '*/*',
  =>   'Content-Type' => 'application/x-www-form-urlencoded',
  =>   'User-Agent' => "YOUR_APP_NAME"
  => }

You can see an example in this integration test.

Contributing

  1. Fork it ( https://github.com/[my-github-username]/sageone_api_signer/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

License

This gem is available as open source under the terms of the MIT licence.

Copyright

Copyright (c) 2018 Sage Group Plc. All rights reserved.