Bulutfon Ruby SDK
Merhaba,
Bugün sizlere, gelişiminde bizim de katkıda bulunduğumuz
Bulutfon API
‘si için Ruby
programlama dili ile yazılmış olan bulutfon_sdk gem
'den bahsedecek ve örnek kodlar göstereceğiz.
Bu gem ile uygulamanızın Bulutfon API Servisi
ile kolayca haberleşmesini sağlayabileceksiniz. SMS gönderme, arama kayıtlarına erişme, otomatik arama
oluşturma gibi birçok özelliği hızlı bir şekilde uygulamalarınıza entegre edebileceksiniz. Bulutfon API
ile daha fazla neler yapabileceğiniz hakkında bilgi almak için
https://github.com/bulutfon/documents adresine göz atabilirsiniz.
Sözü daha fazla uzatmadan örnek kodlara geçelim;
bulutfon_sdk gem 'inin yüklü olduğundan emin oluyoruz.
require 'bulutfon_sdk'
Bulutfon hesabınızdan almanız gereken API master token
token = 'your_token'
Hesap ile ilgili işlemler
bulutfon = BulutfonSDK::REST::Bulutfon.new(token)
Hesap detayları
puts bulutfon.details
Bulutfon üzerinden erişebileceğiniz nesneler. Ayrıca bu nesneleri ayrı ayrı kullanmak isterseniz alt bölümlerdeki kodları inceleyeniz.
Örneğin SMS göndermek için BulutfonSDK::REST::Message
sınıfını yalnız başına kullanabilirsiniz. Alt kısımda örneği bulunmaktadır.
BulutfonSDK::REST::Message objesi
puts bulutfon.messages
BulutfonSDK::REST::MessageTitle objesi
puts bulutfon.message_titles
BulutfonSDK::REST::Did objesi
puts bulutfon.dids
BulutfonSDK::REST::Extension objesi
puts bulutfon.extensions
BulutfonSDK::REST::Group objesi
puts bulutfon.groups
BulutfonSDK::REST::Cdr objesi
puts bulutfon.cdrs
BulutfonSDK::REST::CallRecord objesi
puts bulutfon.call_records
BulutfonSDK::REST::IncomingFax objesi
puts bulutfon.incoming_faxes
BulutfonSDK::REST::OutgoingFax objesi
puts bulutfon.outgoing_faxes
BulutfonSDK::REST::Announcement objesi
puts bulutfon.announcements
BulutfonSDK::REST::AutomaticCall objesi
puts bulutfon.automatic_calls
Santrale bağlı telefon numaraları
did = BulutfonSDK::REST::Did.new(token)
Santrale bağlı telefon numaralarını listeler
puts did.all
Id 'si verilen santral numarasının detaylarını getirir
puts did.get(1)
Dahililer
extension = BulutfonSDK::REST::Extension.new(token)
Dahililerin hepsini getirir
puts extension.all
Id 'si verilen dahili detaylarını getirir
puts extension.get(1)
Yeni bir dahili oluşturma işlemi
params = {
full_name: 'Deneme',
email: '[email protected]',
did: '905xxxxxxxxx',
number: 9999,
redirection_type: 'NONE',
destination_type: 'EXTENSION',
destination_number: '905xxxxxxxxx',
'acl[]' => [ 'domestic', 'gsm', 'international']
}
puts extension.create(params)
Dahili güncelleme işlemi
params = {
full_name: 'Deneme Deneme',
'acl[]' => [ 'domestic', 'gsm']
}
puts extension.update(1, params)
Dahili silme işlemi
puts extension.delete(1)
Gruplar
group = BulutfonSDK::REST::Group.new(token)
Grupları listeler
puts group.all
Id 'si verilen grup detaylarını getirir
puts group.get(1)
Arama kayıtları
cdr = BulutfonSDK::REST::Cdr.new(token)
Tüm arama kayıtlarını listeler
puts cdr.all
Arama kayıtlarını sayfalama yaparak getirir
puts cdr.all({page: 1, limit: 1})
Uuid 'si verilen arama kaydı detaylarını getirir
puts cdr.get('uuid')
Ses kayıtları
call_record = BulutfonSDK::REST::CallRecord.new(token)
Uuid 'si verilen ses kaydının bilgilerini getirir
puts call_record.get('uuid')
Uuid 'si verilen ses kaydını verilen save_path dosyasına kayıt eder
save_path = "#{File.expand_path(File.dirname(__FILE__))}/save_uuid.ogg"
puts call_record.save('uuid', save_path)
Gelen fakslar
incoming_fax = BulutfonSDK::REST::IncomingFax.new(token)
Gelen faksları listeler
puts incoming_fax.all
Uuid 'si verilen gelen faks detaylarını getirir
puts incoming_fax.get('uuid')
Uuid 'si verilen gelen faks dosyasını save_path dosyasını kayıt eder
save_path = "#{File.expand_path(File.dirname(__FILE__))}/save_uuid.tiff"
puts incoming_fax.save('uuid', save_path)
Giden fakslar
outgoing_fax = BulutfonSDK::REST::OutgoingFax.new(token)
Giden faksları listeler
puts outgoing_fax.all
Id 'si verilen giden faks detaylarını getirir
puts outgoing_fax.get(1)
Giden faks oluşturma işlemi
file = "#{File.expand_path(File.dirname(__FILE__))}/pdf-sample.pdf"
params = {
title: 'Deneme',
receivers: '905xxxxxxxxx',
did: '905xxxxxxxxx',
attachment: file
}
puts outgoing_fax.create(params)
Ses Dosyaları
announcement = BulutfonSDK::REST::Announcement.new(token)
Ses dosyalarını listeler
puts announcement.all
Id 'si verilen ses dosyası detaylarını getirir
puts announcement.get(1)
Ses dosyası oluşturur
file = "#{File.expand_path(File.dirname(__FILE__))}/test.wav"
params = {
name: 'Deneme',
announcement: file
}
puts announcement.create(params)
Id 'si verilen ses dosyasını, veilen dosya yoluna kayıt eder
save_path = "#{File.expand_path(File.dirname(__FILE__))}/save_test.wav"
puts announcement.save(1, save_path)
Id 'si verilen ses dosyasını siler
puts announcement.delete(1)
Otomatik Aramalar
automatic_call = BulutfonSDK::REST::AutomaticCall.new(token)
Otomatik aramalar listesini getirir
puts automatic_call.all
Id 'si verilen otomatik arama detaylarını geitirir
puts automatic_call.get(1)
Otomatik arama oluşturur ve oluşturma işleminden sonra receivers numaraları aranır.
params = {
title: 'Automatic call after creation',
receivers: '905xxxxxxxxx',
did: '905xxxxxxxxx',
announcement_id: 1
}
puts automatic_call.create(params)
Zaman planlı otomatik arama oluşturulur, Bu parametrelerde, receivers numaraları perşembe günü 10:15 ve 12:00 saatleri arasında aranır.
params = {
title: 'Time planned call',
receivers: '905xxxxxxxxx',
did: '905xxxxxxxxx',
announcement_id: 1,
mon_active: false,
tue_active: false,
wed_active: false,
thu_active: true,
thu_start: '10:15',
thu_finish: '12:00',
fri_active: false,
sat_active: false,
sun_active: false,
hours_active: true
}
puts automatic_call.create(params)
Mesaj Başlıkları
message_title = BulutfonSDK::REST::MessageTitle.new(token)
Mesaj başlıklarını listeler
puts message_title.all
Mesajlar
message = BulutfonSDK::REST::Message.new(token)
Mesajları listeler
puts message.all
Mesajları sayfalama yapılarak listelenir
puts message.all({page: 1, limit: 3 })
Id 'si verilen mesaj detaylarını getirir
puts message.get(1)
SMS mesajı oluşturma işlemi
params = {
title: 'CONFIRMED_MESSAGE_TITLE',
content: 'Test Message',
receivers: '905xxxxxxxxx'
}
puts message.create(params)
Çok alıcılı mesja gönderme işlemi
params_multiple = {
title: 'CONFIRMED_MESSAGE_TITLE',
content: 'Multiple Message',
receivers: '905xxxxxxxxx,905xxxxxxxxx'
}
puts message.create(params_multiple)
Zaman planlı mesaj gönderme işlemi
params = {
title: 'CONFIRMED_MESSAGE_TITLE',
content: 'Planned message example',
receivers: '905xxxxxxxxx',
is_future_sms: true,
send_date: '16/12/2015 10:00'
}
puts message.create(params)
Kaynakça,
- https://bulutfon.com/
- https://github.com/bulutfon/documents
- https://github.com/bulutfon/ruby-sdk
- http://api.bulutfon.com/docs
- http://devforums.bulutfon.com/