Skip to content

Repository files navigation

SMS

Beta

Kurulum

gem install omu-sms

Kullanım

Yapılandırma

OMU::SMS.configureprovider: :mutlu_cell,user: 'cezmi',pass: 'secret',from: 'OMUBAUM',title: 'Ondokuz Mayıs Üniversitesi'# isteğe bağlı

Gönderim

OMU::SMS.(to: %w[12345677654321],body: 'foo bar baz')

Yapılandırmadan ön tanımlı gelen from alanını değiştir

OMU::SMS.(to: %w[12345677654321],body: 'foo bar baz',from'OMUUZEM')

Yapılandırmadan ön tanımlı gelen date alanını değiştir

OMU::SMS.(to: %w[12345677654321],body: 'foo bar baz',date: '02/08/2020 01:53')

Yapılandırmasız şekilde her şeyi açık ver

OMU::SMS.(provider: :verimor,user: 'cezmi',pass: 'secret',from: 'OMUBAUM',to: '1234567',# tek numara da olabilirdate: '02/08/2020 01:53',body: 'foo bar baz')

Geliştirme

Örneğin Acme adında yeni bir SMS sağlayıcı için provider dizininde acme.rb isimli bir sürücü oluştur.

moduleOMU::SMS::ProviderclassAcme < Basepostingendpoint: 'https://example.com/send',header: {'content-type'=>'text/xml;charset=utf-8','accept'=>'xml'}.freezerenderingcontent: <<~TEMPLATE <?xml version="1.0" encoding="UTF-8"?> ... TEMPLATEinspectingdo |result|
result.detail.credits=result.response.body&.to_sendendend

Bu örnekte görülen TEMPLATE API isteklerinde render edilerek POST edilen bir ERB şablonudur. Şablonda (öncelik sırasıyla) message nesnesi ve Provider yapılandırmasında tanımlı tüm nitelikleri kullanabilirsiniz. Örnekte inspecting ile (istisna üretmeden sonlanan) başarılı bir POST işlemi sonrasında çalıştırılacak bir callback ayarlanır. Bu callback her sağlayıcı tarafından gerçeklenmelidir.

Asgari olarak tüm sağlayıcılarda user, pass ve from (öntanımlı değer olarak) yapılandırılmış olmalıdır. Sağlayıcı bunun dışında bir nitelik, örneğin customer_no gerektiriyorsa aşağıdaki örnekten yararlanabilirsiniz.

moduleOMU::SMS::ProviderclassAcme < Basepostingendpoint: 'https://example.com/send',header: {'content-type'=>'text/xml;charset=utf-8','accept'=>'xml'}.freezerenderingrequired: %i[customer_no],content: <<~TEMPLATE <?xml version="1.0" encoding="UTF-8"?> <sms customer=<%= customer_no %>> ... </sms> TEMPLATEinspectingdo |result|
result.detail.credits=result.response.body&.to_sendendend

Sağlayıcıya veri gönderilirken farklı bir HTTP seçeneğine ihtiyaç duyarsanız options seçeneğini ayarlayın.

moduleOMU::SMS::ProviderclassAcme < Basepostingendpoint: 'https://example.com/send',header: {'content-type'=>'text/xml;charset=utf-8','accept'=>'xml'}.freeze,options: {ssl_version: :TLSv1_2}.freezerenderingcontent: <<~TEMPLATE <?xml version="1.0" encoding="UTF-8"?> ... TEMPLATEinspectingdo |result|
result.detail.credits=result.response.body&.to_sendendend

Sürümleme

Tüm değişiklikler tamamlandıktan sonra:

  1. Lint ve Test

    bundle exec rake lint
    bundle exec rake test

    Varsa hataları düzelt

  2. Komitle

    git commit -a
    git push origin master

    CI'da hata varsa düzeltinceye kadar devam et

  3. Sürüm yükselt

    $EDITOR lib/omu/sms/version.rb
    git commit -a -m "Yeni sürüm: «sürüm»"
    git push origin master
  4. Etiketle

    git tag -a «sürüm» -m «sürüm»
    git push --tags origin
  5. Paketle

    bundle exec rake package

About

Send SMS through various SMS providers (mostly in Turkey)

Topics

Resources

Contributing

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages