Ruby library for accessing eFax Developer service.
You can find eFax Developer API guides at efaxdeveloper.com or on Scribd.
First you need to provide your account id and credentials:
EFax::Request.account_id = <your account id>
EFax::Request.user = <your login>
EFax::Request.password = <your password>
Sending an HTML page using eFax service is pretty simple:
response = EFax::OutboundRequest.post(recipient_name, company_name, fax_number, subject, content, options)
Options is a hash and can contain content_type and another hash for disposition info. If no options are given, the content_type is set to html by default. An example options hash:
options = {
:content_type => "html",
:disposition => {
:method => "POST",
:level => "BOTH",
:url => "http://notifications.com"
}
}
See EFax::RequestStatus
class for details on status codes.
Having ID of your request, you can get its current status:
response = OutboundRequestStatus.post(doc_id)
The status response has the following attributes:
response.status_code
response.message # "user friendly" status message
See EFax::QueryStatus
class for details on status codes.
Inbound faxes work by exposing a URL that EFax can post to when it receives a fax on your account. An example end-point in rails might look like this:
class InboundFaxesController < AdminController
def create
efax = EFax::InboundPostRequest.receive_by_params(params)
Fax.create(:file => efax.file, :name => efax.name) # etc
render :text => efax.post_successful_message # This is important to let EFax know you successfully processed the incoming request.
end
end
You can generate a EFax::InboundPostRequest
based on optional explicit fields by using a helper method efax_inbound_post
:
In your tests:
require "efax/helpers/inbound_helpers"
describe InboundFax do
include EFax::Helpers::InboundHelpers
it "should create a fax from efax data" do
person = Person.make
person.save
efax = efax_inbound_post(:barcode => person.barcode_number)
fax = InboundFax.create_from_efax!(efax)
fax.person.should == person
end
end