Plugair SDK for Ruby

Gem Version

Installation

Add this line to your application's Gemfile:

gem 'plugair-sdk'

And then execute:

$ bundle

Or install it yourself as:

$ gem install plugair-sdk

Credentials from Environment Variables

export PLUGAIR_API_KEY=0123456789012345678901234567890123456789
export PLUGAIR_SHARED_SECRET=abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl

Usage

require 'plugair-sdk'

begin
  pa = PlugAir.new
  challenge = pa.generate_challenge

  result = pa.verify(
    'pKjZIfryjyhGskAJPAnj9XoQy2q1vOOywLY9XiH5',
    'XFFEaiyk3SCVfGCfI1ZxzhDqZcd96O95zKrG+5NCy1ib5wiNTtHKutVb4AL94HyCjOYDnt9QeSnqUtUJGJ8RG9DmqLl6vpG8imIyzFBsVGRUaF/lSpoRumFWj4uNGKgKWgRbNaCtBefJBkuToPctD4xqPDjI0/a1KAQDYTIyqhvrJcJIN8EXbB0EGxYyLlhmJJBTNMXf1bdvNINCi756xi5RusYj3Ismpo1NV7cDQ37Uy3W21lhKwCJXjlvr2jK7QPton0NxftCWjaeIwTHw/f61CzI4JHaGLft1KrZqCBptCs2fRpf7De3VL/mCaAKeoGAIERbtYfAeB3bOXpRA2A==',
    'hI3wSJ3mkypCJH8doXx6wcStkvNwslYGlZ1tbRjNFGSoYfWT3tgE/3N8f7hLZyHA9XD/aLaJtW3py9DamGw7dcjsEZSHrQ+xKee+q6ExM3vLUu/98YHPDjExCXzVeYwmKz7xN88FWVEuSEiMA/d1xC/pyjJUs10bMH/ITs3UkrydI9MynuNH3C+TrnD2FnNkkcAvJRrsYMhxPcjLLIcBbEGuEIAtHoK8X10fXtrGEjr7eztht2lkaFfRSkdPUa/lCrHb+t3M9iX/6hd9HiY//BmOS0CTw07GiPjFM/WKc8OOieax1XQMKJ/J5g9WxMAJktVeCMOXNze4tdNtOgZh4DegFsrCp2Y3evnF12MXD+qM2vozFL4lDc8HygNIIx4t3L43c5hEDGHk0Nb/KcL+58RKqKovVHez1VOsfnC14jTOAqZlkRDXb6Fs3SOfsh8ogg+oqU56EWPwXAqC6Jy/ZQ=='
  )
  serial_number = result['serialNumber']
  auth_result = result['authResult']
  if auth_result == PlugAir::AUTH_RESULT_OK then
    p 'PlugAir auth is OK'
  end
rescue PlugAirAuthError => e
  p 'PlugAirAuthError: ' + e.message
rescue PlugAirApiKeyError => e
  p 'PlugAirApiKeyError: ' + e.message
rescue PlugAirUnkownError => e
  p 'PlugAirUnkownError'
end

API Documents

Initialize

pa = PlugAir.new(api_key, shared_secret)
  • Parameters
    • api_key String - Hard coded API key (optional)
    • shared_secret String - Hard coded shared secret (optional)
  • Response
    • PlugAir object

Generate challenge

pa.generate_challenge
  • Parameters
    • none
  • Response
    • String - challenge

Verfiy

pa.verify(credential_key, auth_key, auth_data)
  • Parameters
    • credential_key String - Client credential key from smartphone
    • auth_key String - Client authentication key from smartphone
    • auth_data String - Client authentication data from smartphone
  • Response
    • Object - Authentication result
    • authResult String - PlugAir::AUTH_RESULT_OK, PlugAir::AUTH_RESULT_NG, PlugAir::AUTH_RESULT_OTHER_APP_PLUG
    • serialNumber String - 9 Bytes serialNumber in Hex
    • apps Array - store correct iOS/Android app info when authResult is PlugAir::AUTH_RESULT_OTHER_APP_PLUG

Exceptions

PlugAirAuthError

  • status Integer - Status code
  • reason String - Error reason
  • message String - Detail error message

PlugAirApiKeyError

API key error

PlugAirUnknownError

Unknown error

Error reasons

Reason
SERVER_API_KEY_AUTHENTICATION_ERROR
CLIENT_CREDENTIAL_AUTHENTICATION_ERROR
INVALID_CHALLENGE
PLUGAIR_AUTHENTICATION_ERROR
PLUGAIR_NOT_FOUND
INTERNAL_SERVER_ERROR

License

Apache 2.0