Giriş yapmadınız.

Duyuru

TÜRKÇE KİTAP DUYURUSU:
Laravel 5 : Laravel 5.1 Güzelliği (Türkçe)
Vue.js 2 : Vue.js 2 Majesteleri (Türkçe)

#1 21.05.2014 16:41:07

Arda
Üye
Yer: İstanbul
Kayıtlı: 08.03.2013
Mesajlar: 178
Website

Laravel 5 ve 4 için Mutlucell SMS API

Merhaba arkadaşlar,

Tamamen ihtiyaçtan, Mutlucell firmasına ait SMS hizmetini Laravel 5 ve 4 üzerinde kullanmak için bir API hazırladım.

Bu api ile
* Tekli veya çoklu SMS gönderebilir,
* Bu çoklu sms leri farklı kişilere gönderebilir,
* İleri tarihe sms gönderimi ayarlayabilir
* Bakiye bilgisi alabilir,
* Farklı originatörler kullanabilirsiniz.

http://arda.pw/laravel-4-ile-sms-gonder … ucell-sms/

GitHub üzerinden de aşağıdaki linkten erişebilirsiniz:
https://github.com/Ardakilic/laravel-mutlucell-sms

Son düzenleyen Arda (03.03.2015 19:58:01)


PacktPub'dan çıkan kitaplarım: Laravel Application Development Blueprints, Laravel Design Patterns & Best Practices.
Türkçe çıkan kitabım: Raspberry Pi

Çevrimdışı

#2 21.05.2014 21:10:08

sergin
Üye
Kayıtlı: 17.07.2013
Mesajlar: 130
Website

Yanıt: Laravel 5 ve 4 için Mutlucell SMS API

Eline sağlık @Arda,
Birkaç kod iyileştirme önerim, bir de bug bildirimim olacak.

Servis sağlayıcılarda $defer özelliğini false ayarladığımızda provides metodu tanımlamamıza gerek yok. Eğer ertelemişsek, o zaman IoC konteynerinin hangi anahtarın sağlandığını bilmesi için provides metodu tanımlanması gerekiyor.

Her üç sms gönderme metodunda da senderId, dateStr, xml'nin ilk ve son satırları tekrarlanıyor. Hatta ara kısmı da bir kısmında döngü içinde olmakla birlikte aynıdır. Bu işlemlerin private veya protected bir fonksiyonda yapılması daha uygun olabilir. Hatta Laravel'in Route ekleme metoduna baktığımızda üç gönderme metodunun tek metoda indirilmesi bile düşünülebilir. Sadece send. Send metodu parametreyi kontrol ederek üç private metoddan birini seçilebilir.

sendBulk metodunun ilk parametresi dizi değilse 101 döndürüyor. Ama bu parametrenin dizi olup olmadığı kontrol edilmeden önce üç işlem yapılıyor. Öyleyse metodun en başında dizi değilse 101 döndürmek daha uygun olacaktır.
Öte yandan bu recipents parametresinin dizi olma şartı neden gerekli anlayamadım. Zira xml oluşturulurken ", " ile implode edilerek bir string oluşturuluyor. O zaman bu parametre string ise de yine gönderme yapılabilmelidir.

Her gönderme için ayrıca bir de echo parseOutput satırından kurtulmak yararlı olabilir (gönderme metodlarındaki return $this->postXML($xml); yerine return $this->parseOutput($this->postXML($xml));). Tabii bu da 100, 101, 102 gibi return değerlerinin de doğrudan değil parseOutput ile döndürülmesini gerektirecek.

Bug: src/Ardakilic/Mutlucell/Mutlucell.php  dosyasında 163. satır: '<nums>'.$recipentsString.'</nums>'. yerine '<nums>'.$number.'</nums>'. olarak okunmalıdır.

Bir de bir sorum olacak; 2 ay kadar önce @sineld Türkiye SMS için bir paket çıkartmıştı. O, mesajı CDATA içine almış, siz de stripText adını verdiğiniz bir fonksiyonla dönüştürmüşsünüz. CDATA içine alınmış mesaj metinlerinin de StripText gibi bir metoddan geçirilmesi gerekli midir? XML yapısını bozmak dışında güvenlikle ilgili bir sorun da olabilir mi?

Çevrimdışı

#3 21.05.2014 23:39:03

Arda
Üye
Yer: İstanbul
Kayıtlı: 08.03.2013
Mesajlar: 178
Website

Yanıt: Laravel 5 ve 4 için Mutlucell SMS API

@Sergin yapıcı yorumun için teşekkürler,

Mesajın üzerine birkaç düzenlemeye gittim, şu commit'ten görebilirsin. Deneyen olursa sevinirim:
https://github.com/Ardakilic/laravel-mu … ec94ae75e8

sendBulk'ı string kabul edecek şekilde ayarladım, sanırım sorun olmayacak artık smile

Ya ben orada hem XML'den dönen veriyi, hem de okunaklı bir mesaj geri döndürmek istedim. Boolean için getStatus gibi bir metod yazdım. True/false verecek gönderim durumuna göre.

$1234567#1.0'ı düzgün yakalayabilmek için ayrıca bir regex yazdım.

163'de de haklısın, düzelttim, teşekkürler.

CDATA'yı denedim, denemem mi :-/ CDATA ile wraplayınca nedenini bilemediğim bir sebepten mutlucell'in APIsi hatalı xml hatası veriyor. o yüzden stripText diye bir şey yazdım. Bir de güvenlik sorunu olabilir, belki de ondan kapamışlardır, sonuçta CDATA ile sms'i bozacak bir syntax bile basılabilir. & > < gibi karakterleri bile kabul etmiyorken sms cdata basıp ne var ne yoksa yollamak pek akıl kârı gelmedi bana.

Son düzenleyen Arda (22.05.2014 00:35:53)


PacktPub'dan çıkan kitaplarım: Laravel Application Development Blueprints, Laravel Design Patterns & Best Practices.
Türkçe çıkan kitabım: Raspberry Pi

Çevrimdışı

#4 22.07.2014 10:04:06

Arda
Üye
Yer: İstanbul
Kayıtlı: 08.03.2013
Mesajlar: 178
Website

Yanıt: Laravel 5 ve 4 için Mutlucell SMS API

Arkadaşlar kütüphaneyi güncelledim.

Queue özelliği getirdim. Özellikle toplu işlem yapanların işine yarayacağını düşünüyorum.

Ayrıca kod girintilerini vs. de düzelttim.

An itibari ile son commitimden bu güncellemeyi inceleyebilirsiniz.

Son düzenleyen Arda (22.07.2014 10:05:10)


PacktPub'dan çıkan kitaplarım: Laravel Application Development Blueprints, Laravel Design Patterns & Best Practices.
Türkçe çıkan kitabım: Raspberry Pi

Çevrimdışı

#5 03.03.2015 19:35:33

MehmetNuri
Üye
Yer: İstanbul
Kayıtlı: 30.01.2015
Mesajlar: 6
Website

Yanıt: Laravel 5 ve 4 için Mutlucell SMS API

Çok güzel bir çalışma. Elinize sağlık smile

Çevrimdışı

#6 04.06.2018 13:05:18

mekal
Üye
Kayıtlı: 10.05.2018
Mesajlar: 6

Yanıt: Laravel 5 ve 4 için Mutlucell SMS API

Merhaba bu eklentiyi kullanmak istiyorum fakat laravel hakkında hiç bir bilgim yok bu verdiğiniz dosyaları ftp'ye atsam direkt olarak çalıştıramaz mıyım ?

Çevrimdışı

Forum alt kısmı