Web siteme SMS metin mesajlaşma işlevi nasıl eklenir?


57

Oluşturduğum bir web uygulamasında kaydoldukları belirli etkinlikler için kişilere e-posta ve SMS yoluyla hatırlatıcı gönderme yeteneği eklemek istiyorum. E-posta kısmı zor değil, ancak SMS mesajları göndermek için nerede iyi bir çözüm bulacağımı merak ediyorum.

Ayrıca bu çözüm, web uygulamamla iki yönlü SMS iletişimine izin vermişse, bir CONFIRM veya İPTAL türündeki bir mesajla cevap verebilecek bir artı olacaktır.

Kimse böyle bir şey uyguladı mı? Dışarıda iyi aletler bilen var mı?

EDIT: Bunun daha çok "bu kediyi dışlamanın birçok yolu" sorusu olduğunun farkındayım ve bu yüzden bunu topluluk wiki olarak değiştirdim.


+1, bir düzine tek yönlü SMS API sağlayıcısı biliyorum, ancak yanıt alındığında geri bildirim gönderen hiçbiri yok.
Tim Post

Bu soruya cevapları iyileştirme umuduyla bu soruya bir ödül ekledim.
artlung

jessegavin, En iyi cevabı seçmek istiyorsan, çekinmeyin - ödül yarın biter!
artlung

Yanıtlar:


25

Bu cevabı birkaç kez, başlangıçta tavsiye ettiğim hizmetler işsiz kaldıkça düzenlemek zorunda kaldım. Yeni endüstri liderinin Twilio olduğuna , mükemmel bir API ve uygun fiyatlara sahip olduklarına inanıyorum . Dikkate değer bazı alternatifler Tropo , Plivo ve Nexmo .

Ben kullanıyorum IMified benzer şeyler yapmak bir süre için ve ben iyi çalışması için buldum. HTTP POST olarak SMS (veya Twitter ve IM mesajları) almanıza izin verir ve web sunucunuzun yanıtı cevap olarak gönderilir. Ayrıca, konuşmayı başlatmak ve mesaj göndermek için kullanılabilecek bir web servisi de sunarlar .

Ben diğer seçenekler ararken ben rastladım zeep Mobil (Not: zeep Mobil artık 8/1/2013 tarihinden itibaren işinde olacaktır) SMS göndermek ve almak için bir API vardır. Ücretsizdir ve reklam desteklenir veya aylık ücret karşılığında kullanılabilir. Denemedim, ama oldukça ilginç görünüyor.

Ayrıca, ClickATell gibi bir SMS Gateway kullanabilirsiniz .

İyi şanslar!

EDIT: StackOverflow hakkında daha fazla öneri olan bir soru buldum, bazıları modası geçmiş olabilir.


CLickATell'i de kullanıyorum ve hizmetlerinden memnun kaldım.
Alex,

Plivo ücretli servis için çok seveceğim. Twilio'yu da kullanıyorduk ki bu aynı zamanda olağanüstü ama daha pahalı.
Frank,

15

Bunu e-posta yoluyla uygulamayı başaran bir arkadaşım vardı. Bu sitenin tavsiye ettiği şekilde yaptığını düşünüyorum :

T-Mobile: phonenumber @ tmomail.net
Virgin Mobile: phonenumber @ vmobl.com
Cingular: phonenumber @ cingularme.com
AT & T: phonenumber@txt.att.net
Sprint: phonenumber @ messaging.sprintpcs.com
Verizon: phonenumber @ vtext.com
Nextel : telefon numarası @ messaging.nextel.com

nerede phonenumber 10 haneli telefon numarasını =


1
Bunu henüz test ettim ve operatörüm (AT&T) kısa mesajın başına FROM: [Gönderenin Adı], SUBJ: [Konu Satırı], MSG: [Mesaj İçeriği] 'ni ekledi. - Yani bu (en azından) bu yöntemle kullanılan 21 karakterdir. En azından benim için bunun kamuya açık web uygulamaları için kabul edilmeyeceğini düşünüyorum.
jessegavin

3


2
Ülkemde (Arjantin) e-posta yoluyla alınan SMS'i ödemek zorundasınız (Müşterileriniz beğenmeyebilir)
Eduardo Molteni

1
Taşıyıcının kim olduğunu nasıl belirlersiniz?
Adam,

9

Ben kullanıyorum Twilio için sesli ve ben oldukça etkilendim oldum. SMS sistemlerinin çok farklı olmadığından eminim . Bu, gönderilecek e-posta adresini bilmeden herhangi bir operatöre göndermenize olanak sağlar (zamanla değiştiklerini farkettim).


Demek API'larını kullanıyorsun? Nasıl kullanıyorsun
artlung

1
PHP komut dosyaları aracılığıyla çağrılan çağrıları yapmak için ses API'lerini kullanıyorum. Arama yapmak için kullanıyorum ve metne ses yapmak için kullanıyorum ve ardından kullanıcıdan gelen yanıtları kabul ediyorum.
Darryl Hein


4

Geçmişte düşündüğüm diğer iki seçenek:

Skype API
Yeni Skype API kullanarak SMS gönderin ve alın. Sanırım Twilio daha ucuz, ancak Skype daha fazla ülkede bulunuyor (SMS almak istiyorsanız).

Sunucunuza
bir telefon takma SMS ağ geçidi şirketlerinin çok şarj ettiği bir ülkede (Arjantin gibi) yaşıyorsanız, bir telefon satın almayı ve sunucunuza takmayı (elbette barındırma ortamınıza bağlı olarak) daha ucuz bulabilirsiniz. Ardından , telefonla etkileşimde bulunmak için SMSToolkit gibi bir yazılımı kullanabilirsiniz .



2

SMS sağlayıcı olarak Vidicom İngiltere'yi kullanarak böyle iki yollu bir SMS sistemi yazdım (hala devam edip etmediklerinden emin değilim). Temel olarak, SMS mesajları gönderip alabileceğiniz HTTP tabanlı bir API'ye sahiptir. Ayrıntılı olarak açıklamak çok karmaşık, fakat özünde iki veritabanı tablosu vardı; biri ağ geçidinden gelen mesajlar için, diğeri ise sıraya alınmış ve ağ geçidine gönderilen mesajlar için.

Temel olarak, İPTAL veya DUR gibi anahtar kelimeler içerip içermediklerini görmek için gelen mesajları ayrıştırmam ve sonra mesajı uygun şekilde işlemem gerekti. Ne yazık ki, çok fazla çöp mesajı alıyorsunuz - kaç kişinin yanlış sayıda SMS mesajı gönderdiğine şaşıracaksınız - bu nedenle "Mesaj anlaşılmadı" vb.


2

Uygun fiyatlı bir toplu SMS sağlayıcısı istiyorsanız, geliştirici bir API ile www.SourceSMS.com adresini kullanabilirsiniz - uluslararası kapsam sunarlar ve web sitenize indirebileceğiniz ve entegre edebileceğiniz komut dosyaları vardır.


1

Başka bir seçenek de PHP'nin posta işlevini ve bunun gibi taşıyıcıların e-posta sunucularının bir listesini kullanmaktır:

PHP dosyasında bir HTML formu hazırlayın,

<select name="carrier" style="width: 130px" >
<option selected="" value="1">Verizon Wireless</option>
<option value="2">Alltel</option>
<option value="3">Boost Mobile</option>
<option value="4">Cingular</option>
<option value="5">Nextel</option>
<option value="6">Sprint</option>
<option value="7">T-Mobile</option>
<option value="8">Virgin Mobile</option>
<option value="9">AT&T</option>
</select>

Ardından postanın nereye gönderileceğini ayarlayın:

if ($carrier == "1") {
    $email = "$to@vtext.com";
} elseif ($carrier == "2") {
    $email = "$to@message.alltel.com";
} elseif ($carrier == "3") {
    $email = "$to@myboostmobile.com";
} elseif ($carrier == "4") {
    $email = "$to@cingularme.com";
} elseif ($carrier == "5") {
    $email = "$to@messaging.nextel.com";
} elseif ($carrier == "6") {
    $email = "$to@messaging.sprintpcs.com";
} elseif ($carrier == "7") {
    $email = "$to@tmomail.net";
} elseif ($carrier == "8") {
    $email = "$to@vmobl.com";
} elseif ($carrier == "9") {
    $email = "$to@txt.att.net";
}

Postayı gönderin: ($ e-posta, $ konu, $ msg, $ postadan tanımlanması ve uygun biçimde olması gerekir, ayrıca girdileri dezenfekte etmenizi öneririz)

if (mail($email, $subject, $msg, $mailfrom)) {
    echo "<h4>Your Text Was Successfully Sent.</h4>";
    echo "<br />";
    if ($backurl == "") {
        echo "<a href='javascript:history.back(1);'>Back</a>";
    } else {
        echo "<a href='" . $backurl . "'>Back</a>";
    }
    echo "</body></html>";
} else {
    echo "<h4><b>Error Sending Message</b></h4><br>Can't send txt to $to. <br> Contact the site Administrator.";
}

PHP'nin php.ini dosyasında geçerli posta ayarlarına sahip olduğundan emin olun. Herhangi bir sorunuz varsa, sadece sorun.



0

Çok sayıda üretici ve servis sağlayıcı var. Özeki SMS Gateway'i tanıyorum. Kendi gsm modeminiz veya SMPP / UCP / CMD veya başka bir sağlayıcı ile kurum içi bir çözüm istiyorsanız aşağıdaki URL'ler size yardımcı olabilir. Karar verdiğinizde ilk soru: kaç tane SMS göndermek veya almak istiyorsunuz?

HTTP SMS API örnekleri ile .

ASP / ASP.NET Geliştiricileri için SMS API ve PHP Geliştiricileri için Örnekler SMS işlevsellik sayfalarının nasıl ayarlanacağıyla ilgili size yararlı bilgiler verebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.