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: 'deneme@deneme.com',
    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,

comments powered by Disqus