A Ruby gem for interacting with the Phaxio API.
Note: This gem only runs on Ruby version 1.9.+
Add this line to your application's Gemfile:
gem 'phaxio'
And then execute:
$ bundle
Or install it yourself as:
$ gem install phaxio
Configure Phaxio with your api_key and api_secret:
Phaxio.config do |config|
config.api_key = "10987654321"
config.api_secret = "12345678910"
end
To send a fax:
Phaxio.send_fax(to: "0123456789", filename: File.new("test.pdf"))
TODO: Add examples
create
- Create and send a faxlist
- List faxes in date rangeget
- Get fax infocancel
- Cancel a faxresend
- Resend a faxdelete
- Delete faxdelete_file
- Delete fax filefile
- PENDING Get fax content file or thumbnailtest_receive
- PENDING Test receiving a faxsupported_countries
- PENDING Get a list of supported countries
create
- Provision a phone numberlist
- List numbersget
- Get number infodelete
- Release a numberlist_available_area_codes
- List area codes available for purchasing numbers
create
- PENDING Create PhaxCodeget
- PENDING Retrieve PhaxCode
get
- Get account status
TODO: Revise for v2
require 'phaxio'
Phaxio.config do |config|
config.api_key = "your_key"
config.api_secret = "your_secret"
end
@fax = Phaxio.send_fax(to: '15555555555', string_data: "hello world")
Phaxio.get_fax_status(id: @fax["faxId"])
# Get a Fax and save it as a PDF
@pdf = Phaxio.get_fax_file(id: @fax["faxId"], type: "p")
File.open("received_test.pdf", "w") do |file|
file << @pdf
end
TODO: Revise for v2
require 'sinatra/base'
require 'phaxio'
class PhaxioCallbackExample < Sinatra::Base
Phaxio.config do |config|
config.api_key = '0123456789'
config.api_secret = '0123456789'
config.callback_token = '0123456789'
end
post '/phaxio_callback' do
if Phaxio.valid_callback_signature?(
request.env['HTTP_X_PHAXIO_SIGNATURE'],
request.url, callback_params, params[:filename])
'Success'
else
'Invalid callback signature'
end
end
def callback_params
params.select do |key, _value|
%w(success is_test direction fax metadata message).include?(key)
end
end
end
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
- Rewrite README for V2 updates
- Support old-school configuration (
Phaxio.configure do |config| ...
) - Flesh out Records, References, and Collections
- Handle JSON parsing errors
- Document that specs for actions which are dependent upon others need to be tested in isolation if testing against the API, and that sleeps may be needed to prevent timeouts.
- Find a better way to generate API responses for tests
- Implement Fax test_receive, get_fax_file (find_fax_file, retrieve_fax_file), and delete (destroy)
- Implement PhaxCode create and get (find, retrieve)
- Implement Callback validate_signature and valid_signature?