Skip to content

pivotus/globalsms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GlobalSMS

Ruby geliştiricileri için GlobalHaberlesme.com API lerini kullanan Ruby Gem'idir. GlobalHaberlesme.com tarafından sunulan API dokümantasyonundaki çağrıların (neredeyse) tamamını içerir.

Kurulum

Uygulama içerisinde kullanmak için aşağıdaki satırı Gemfile'a ekleyin:

gem 'globalsms'

Sonra kurulmasını sağlayın:

$ bundle

Ya da kendiniz kurun:

$ gem install globalsms

Kullanılabilir Fonksiyonlar ve Kullanım Örnekleri

SMS Gönderme

Mesaj göndermek için tanımlanmış fonksiyonlara argüman olarak hash verilir. Fonksiyon geriye hash döner.

Ön tanımlı değerler:

turkish_character: "0"
time: "now"

turkish_character: "0" olarak verilmesine karşın, mesaj Türkçe karakter içeriyorsa Türkçe karakterler değiştirilerek gönderilir. Örneğin TÜRKÇE KARAKTER İÇEREN BİR MESAJ olarak gönderilen bir mesaj TURKCE KARAKTER iCEREN BiR MESAJ olarak iletilir.

Kullanıcının gireceği değerler:

numbers: "5493666154"
text: "Mesaj Metni"

Nesne üretme:

SMS gönderme işlemi yapmak üzere GlobalSMS:SMS sınıfından bir nesne üretirken argüman olarak hash verilir. Örneğin,

init_args = {
  api_key: "api-key",
  api_secret: "api-secret",
  originator: "USTAD",
  turkish_character: "1"
}

sms = GlobalSMS::SMS.new(init_args)

Bir mesaj gönderme

require 'globalsms'

sms = GlobalSMS::SMS.new(init_args)

args = {
  numbers: "5493666154",
  text: "Mesaj Metni",
  turkish_character: "1",
  time: "2015-10-07 12:35:00" # Geleceğe dönük mesaj atılması istendiğinde, geleceğe dair bir tarih/saat verilir.
  Öntanımlı şu an `now` olarak verilmiştir.
}

sms.single_send(args)

# {
#   "result" => true, "message_id" => "239916", "numbers" => ["5493666154"], "total_numbers_count" => 1, "turkcell_numbers_count" => 0, "vodafone_numbers_count" => 1, "avea_numbers_count" => 0, "total_credit" => 1, "0" => ""
# }

Aynı mesajı birden fazla numaraya gönderme

NOT: Tek mesaj gönderme yöntemiyle aynıdır. Sadece numbers değerine dizi olarak birden fazla numara verilir. Tek bir message_id üretir.

require 'globalsms'

sms = GlobalSMS::SMS.new(init_args)

args = {
  originator: "DENEME",
  numbers: ["5493666154", "5493666155", "5493666156", "5493666157"],
  text: "Mesaj Metni",
  turkish_character: "1"
}

sms.single_send(args)

# {
#   "result" => true, "message_id" => "239922", "numbers" => ["5493666154", "5493666155", "5493666156", "5493666157", "..."], "total_numbers_count" => 5, "turkcell_numbers_count" => 0, "vodafone_numbers_count" => 5, "avea_numbers_count" => 0, "total_credit" => 5, "0" => ""
# }

NOT: 4'den fazla numaraya mesaj gönderilirken dönen cevapta 4'den sonraki numaralar "..." olarak kısaltılır.

Tek bir çağrıda birden fazla numaraya farklı mesajlar gönderme

require 'globalsms'

sms = GlobalSMS::SMS.new(init_args)

args = [
  { numbers: "5493666154",
    text: "Mesaj Metni",
    turkish_character: "1"
  },

  { numbers: "5493666155",
    text: "Bir Başka Mesaj Metni",
    turkish_character: "1"
  },

  { numbers: "5493666156",
    text: "Ve Bir Başka Mesaj Metni",
    turkish_character: "1"
  },

  { numbers: "5493666157",
    text: "Ve De Bir Başka Mesaj Metni",
    turkish_character: "1"
  }
]

sms.multi_send(args)

# {
#   "result" => true, "results" => [{
#     "result" => true, "message_id" => "239928", "numbers" => ["5493666154"], "total_numbers_count" => 1, "turkcell_numbers_count" => 0, "vodafone_numbers_count" => 1, "avea_numbers_count" => 0, "total_credit" => 1, "0" => ""
#   }, {
#     "result" => true, "message_id" => "239929", "numbers" => ["5493666155"], "total_numbers_count" => 1, "turkcell_numbers_count" => 0, "vodafone_numbers_count" => 1, "avea_numbers_count" => 0, "total_credit" => 1, "0" => ""
#   }, {
#     "result" => true, "message_id" => "239930", "numbers" => ["5493666156"], "total_numbers_count" => 1, "turkcell_numbers_count" => 0, "vodafone_numbers_count" => 1, "avea_numbers_count" => 0, "total_credit" => 1, "0" => ""
#   }, {
#     "result" => true, "message_id" => "239931", "numbers" => ["5493666157"], "total_numbers_count" => 1, "turkcell_numbers_count" => 0, "vodafone_numbers_count" => 1, "avea_numbers_count" => 0, "total_credit" => 1, "0" => ""
#   }]
# }

İleri tarihli mesajın gönderimini iptal etme

İleri tarihli(gelecekte) gönderilmesi planlanmış bir SMS-in gönderimini iptal etmek için kullanılır. Argüman olarak tek bir veya birden fazla message_id alabilir.

require 'globalsms'

sms = GlobalSMS::SMS.new(init_args)

sms.cancel(3614893)

# {"result":true,"message_id":"3614893","credit_change":"1"}

Rapor Alma

Gönderilmiş mesajlara ait raporları almak için fonksiyonlara argüman olarak tek bir çağrı için message_id, birden fazla çağrı için message_id leri içeren bir array verilir. Fonksiyon geriye hash döndürür.

Nesne üretme:

Rapor görüntüleme işlemi yapmak üzere GlobalSMS:REPORT sınıfından bir nesne üretirken argüman olarak hash verilir. Örneğin,

init_args = {
  api_key: "api-key",
  api_secret: "api-secret"
}

report = GlobalSMS::REPORT.new(init_args)

Bir mesaja ait raporları görüntüleme

require 'globalsms'

report = GlobalSMS::REPORT.new(init_args)

report.message(239916, limit=250)

# {
#   "result" => true, "data" => [{
#     "id" => "34163245", "created_datetime" => "2015-05-05 14:54:32", "gsm_no" => "5493666154", "gsm_operator" => "2", "sent_status" => "2", "sent_datetime" => "2015-05-05 14:54:37", "out_status" => "255", "out_datetime" => "2015-05-05 14:54:37", "report_message" => "COMMAND_ERROR", "name" => nil
#   }], "totals" => {
#     "total_number" => "1", "message_id" => "239916", "total_sent" => "1", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "paid_coin" => "1"
#   }
# }

NOT: limit değişkeni 250 ile ilklenmiştir.

Son x mesaja ait raporları görüntüleme

Argüman verilmezse, ön tanımlı olarak en son yollanan (1) mesaja ait raporu döndürür.

require 'globalsms'

report = GlobalSMS::REPORT.new(init_args)

report.last_n(10)

# {
#   "result" => true, "data" => [{
#     "id" => "239931", "created_datetime" => "2015-05-05 15:00:52", "originator" => "DENEME", "originator_id" => "1616", "total_num" => "1", "pieces" => "1", "total_sent" => "1", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Ve De Bir Başka Mesaj Metni", "time_to_send" => "2015-05-05 15:00:52"
#   }, {
#     "id" => "239930", "created_datetime" => "2015-05-05 15:00:52", "originator" => "DENEME", "originator_id" => "1616", "total_num" => "1", "pieces" => "1", "total_sent" => "1", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Ve Bir Başka Mesaj Metni", "time_to_send" => "2015-05-05 15:00:52"
#   }, {
#     "id" => "239929", "created_datetime" => "2015-05-05 15:00:52", "originator" => "DENEME", "originator_id" => "1616", "total_num" => "1", "pieces" => "1", "total_sent" => "1", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Bir Başka Mesaj Metni", "time_to_send" => "2015-05-05 15:00:52"
#   }, {
#     "id" => "239928", "created_datetime" => "2015-05-05 15:00:52", "originator" => "DENEME", "originator_id" => "1616", "total_num" => "1", "pieces" => "1", "total_sent" => "1", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Mesaj Metni", "time_to_send" => "2015-05-05 15:00:52"
#   }, {
#     "id" => "239926", "created_datetime" => "2015-05-05 14:59:06", "originator" => "DENEME", "originator_id" => "1616", "total_num" => "1", "pieces" => "1", "total_sent" => "1", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Ve De Bir Başka Mesaj Metni", "time_to_send" => "2015-05-05 14:59:06"
#   }, {
#     "id" => "239925", "created_datetime" => "2015-05-05 14:59:06", "originator" => "DENEME", "originator_id" => "1616", "total_num" => "1", "pieces" => "1", "total_sent" => "1", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Ve Bir Başka Mesaj Metni", "time_to_send" => "2015-05-05 14:59:06"
#   }, {
#     "id" => "239924", "created_datetime" => "2015-05-05 14:59:06", "originator" => "DENEME", "originator_id" => "1616", "total_num" => "1", "pieces" => "1", "total_sent" => "1", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Bir Başka Mesaj Metni", "time_to_send" => "2015-05-05 14:59:06"
#   }, {
#     "id" => "239923", "created_datetime" => "2015-05-05 14:59:06", "originator" => "DENEME", "originator_id" => "1616", "total_num" => "1", "pieces" => "1", "total_sent" => "1", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Mesaj Metni", "time_to_send" => "2015-05-05 14:59:06"
#   }, {
#     "id" => "239922", "created_datetime" => "2015-05-05 14:57:10", "originator" => "DENEME", "originator_id" => "1616", "total_num" => "4", "pieces" => "1", "total_sent" => "4", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Mesaj Metni", "time_to_send" => "2015-05-05 14:57:10"
#   }, {
#     "id" => "239916", "created_datetime" => "2015-05-05 14:54:32", "originator" => "DENEME", "originator_id" => "1616", "total_num" => "1", "pieces" => "1", "total_sent" => "1", "num_reached" => "0", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Mesaj Metni", "time_to_send" => "2015-05-05 14:54:32"
#   }], "totals" => {
#     "total_message" => "33", "total_reached" => "21", "total_sms" => "42"
#   }
# }

Belirli tarihler arasında gönderilmiş mesajlara ait raporları görüntüleme

Bu fonsiyon argüman olarak hash alır ve sonuç olarak hash döner. 'limit' değeri sorgu cevabının boyutunu ayarlar. Azami değeri 200-dür. 200-den fazlası için cevap dönmez veya 20 adet döner. Bu sebeple 'start' değeri kullanılarak sayfalama yapılır. Örneğin 'limit' değeri 100 ve 'start' değeri 100 ise 2. sayfa(100 ve 200 arası değerler) döner. 'limit' ve 'start' değerleri girilmezse ilk 200 kayıt listelenir.

Ön tanımlı değerler:

start_time: "00:00:00"
end_time: "23:59:59"
limit: "200"
start: "0"

Kullanıcının gireceği değerler:

start_date: "2015-05-06"
end_date: "2015-05-06"
require 'globalsms'

report = GlobalSMS::REPORT.new(init_args)

args = {
  start_date: "2015-05-06",
  end_date: "2015-05-06",
  start_time: "20:21:20",
  end_time: "20:22:00"
}

report.between(args)

# {
#   "result" => true, "data" => [{
#     "id" => "243408", "created_datetime" => "2015-05-06 20:21:30", "originator" => "DENEME", "originator_id" => "1649", "total_num" => "2", "pieces" => "1", "total_sent" => "2", "num_reached" => "2", "num_not_reached" => "0", "num_waiting_for_time" => "0", "text" => "Mesaj Metni", "time_to_send" => "2015-05-06 20:21:30"
#   }], "totals" => {
#     "total_message" => "1", "total_reached" => "2", "total_sms" => "2"
#   }
# }

Bilgi Alma

Nesne üretme:

Bilgi alma işlemi yapmak üzere GlobalSMS:INFO sınıfından bir nesne üretirken argüman olarak hash verilir. Örneğin,

init_args = {
  api_key: "api-key",
  api_secret: "api-secret"
}

info = GlobalSMS::INFO.new(init_args)

Gönderici adlarını görüntüleme

Bu fonksiyon argüman almaz.

require 'globalsms'

info = GlobalSMS::INFO.new(init_args)

info.originator_list

# {
#   "result" => true, "data" => [{
#     "originator_id" => "1616", "title" => "DENEME", "created_datetime" => "2015-04-27 20:25:39", "updated_datetime" => "2015-04-27 20:25:44", "approved_datetime" => "2015-04-27 20:25:44", "description" => "", "status" => "1"
#   }]
# }

Kullanıcı detaylarını ve kalan kredi bilgisini görüntüleme

require 'globalsms'

info = GlobalSMS::INFO.new(init_args)

info.user_info

# {
#   "result" => true, "data" => {
#     "firstname" => "Salih", "lastname" => "Özdemir", "username" => "salihozd", "email" => "me@salihozdemir.net", "image" => nil, "credit" => "8"
#   }
# }

Geliştirme

Bu Gem, GlobalHaberlesme.com dan bağımsız bir geliştirici tarafından oluşturulmuştur.

Katkıda Bulunma

Geliştirmeye yapacağınız öneri ve katkılarınızı bekliyoruz.

Lisans

Bu Gem, MIT Lisansı ile korunur.

Bağlantılar

Orijinal API Dokümantasyonu http://uye.globalhaberlesme.com/uploads/api_user.pdf

RubyGems https://rubygems.org/gems/globalsms

About

GlobalHaberlesme API leri aracılığıyla SMS gönderme, rapor alma ve benzeri işlerin yapılabileceği Ruby Gem idir.

Resources

License

Stars

Watchers

Forks

Packages

No packages published