จะเพิ่มฟังก์ชั่นการส่งข้อความทาง SMS ในเว็บไซต์ของฉันได้อย่างไร


57

ฉันต้องการเพิ่มความสามารถในการส่งการแจ้งเตือนไปยังผู้คนผ่านอีเมลและ SMS สำหรับกิจกรรมเฉพาะที่พวกเขาสมัครใช้งานบนเว็บแอปพลิเคชันที่ฉันกำลังสร้าง ส่วนอีเมลไม่ใช่เรื่องยาก แต่ฉันสงสัยว่าจะหาทางออกที่ดีสำหรับการส่งข้อความ SMS ได้อย่างไร

มันจะเป็นข้อดีหากโซลูชันนี้อนุญาตให้มีการสื่อสาร SMS แบบสองทางกับเว็บแอปพลิเคชันของฉันเพื่อให้ผู้คนสามารถตอบกลับด้วยข้อความ CONFIRM หรือ CANCEL

มีใครทำอะไรแบบนี้บ้าง? ไม่มีใครรู้ว่าเครื่องมือที่ดีออกมี?

แก้ไข:ฉันรู้ว่านี่เป็นคำถามประเภท "วิธีมากมายในการสกินแมวตัวนี้" และฉันจึงเปลี่ยนเป็นวิกิชุมชน


+1 ฉันรู้จักผู้ให้บริการ SMS API ทางเดียวโหล แต่ไม่มีผู้ใดโพสต์กลับหากได้รับคำตอบ
Tim Post

ฉันเพิ่มความโปรดปรานให้กับคำถามนี้ด้วยความหวังที่จะปรับปรุงคำตอบสำหรับคำถามนี้
artlung

jessegavin, ถ้าคุณรู้สึกอยากเลือกคำตอบที่ดีที่สุด, อย่าลังเลที่ - ความโปรดปรานจะจบลงในวันพรุ่งนี้!
artlung

คำตอบ:


25

ฉันต้องแก้ไขคำตอบนี้สองสามครั้งเนื่องจากบริการที่ฉันแนะนำในตอนแรกเลิกกิจการไปแล้ว ฉันเชื่อว่าผู้นำในอุตสาหกรรมใหม่คือTwilioพวกเขามี API ที่ยอดเยี่ยมและราคาสมเหตุสมผล ทางเลือกบางอย่างที่มีมูลค่าการพิจารณาTropo , PlivoและNexmo

ฉันใช้IMifiedมาระยะหนึ่งแล้วเพื่อทำสิ่งที่คล้ายกันและฉันคิดว่ามันทำงานได้ดี อนุญาตให้คุณรับ SMS (หรือข้อความ Twitter และ IM) เป็น HTTP POST และการตอบกลับของเว็บเซิร์ฟเวอร์ของคุณจะถูกส่งเป็นการตอบกลับ พวกเขายังมีบริการเว็บที่สามารถใช้ในการเริ่มต้นการสนทนาและส่งข้อความ

ในขณะที่ฉันกำลังมองหาตัวเลือกอื่น ๆ ฉันเจอZeep Mobile (หมายเหตุ: Zeep Mobile จะไม่อยู่ในธุรกิจตั้งแต่ 8/1/2013) ซึ่งมี API สำหรับการส่งและรับ SMS มันฟรีและโฆษณาที่สนับสนุนหรือมีค่าธรรมเนียมรายเดือน ฉันไม่ได้ลอง แต่มันดูน่าสนใจทีเดียว

นอกจากนี้คุณยังสามารถใช้เกตเวย์ SMS เช่นClickatell

ขอให้โชคดี!

แก้ไข: ฉันพบคำถามเกี่ยวกับ StackOverflow ที่มีคำแนะนำเพิ่มเติมจำนวนมากบางรายการอาจล้าสมัย


ฉันใช้ CLickATell ด้วยและฉันพอใจกับบริการของพวกเขา
อเล็กซ์

ฉันจะเข้าร่วมใน Plivo ที่จ่ายค่าบริการมันยอดเยี่ยมมาก เราเคยใช้ Twilio ที่โดดเด่น แต่มีค่าใช้จ่ายมากกว่า
แฟรงค์

15

ฉันมีเพื่อนที่สามารถใช้สิ่งนี้ผ่านอีเมลได้ ฉันเชื่อว่าเขาทำเช่นเดียวกันกับที่เว็บไซต์นี้แนะนำ :

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 : phonenumber @ messaging.nextel.com

โดยที่phonenumber = หมายเลขโทรศัพท์ 10 หลักของคุณ


1
ฉันเพิ่งทดสอบสิ่งนี้และผู้ให้บริการของฉัน (AT&T) ได้เพิ่ม FROM: [ชื่อผู้ส่ง], SUBJ: [หัวเรื่องบรรทัด], ผงชูรส: [เนื้อหาข้อความ] ไปยังจุดเริ่มต้นของข้อความ - นั่นคือ (อย่างน้อยที่สุด) 21 ตัวอักษรที่ใช้หมดไปกับวิธีนี้ ฉันคิดว่า (อย่างน้อยสำหรับฉัน) สิ่งนี้จะไม่เป็นที่ยอมรับสำหรับแอปพลิเคชันทางเว็บที่สาธารณะส่วนใหญ่
jessegavin

3
@artlung en.wikipedia.org/wiki/List_of_carriers_providing_SMS_transitisเป็นรายการที่ครอบคลุม
Yahel

7
คุณหมายถึงen.wikipedia.org/wiki/List_of_SMS_gatewaysแต่ขอบคุณ!
artlung

2
ในประเทศของฉัน (อาร์เจนตินา) คุณต้องจ่าย SMS ที่ได้รับทางอีเมล (ลูกค้าของคุณอาจไม่ชอบ)
Eduardo Molteni

1
คุณจะกำหนดได้อย่างไรว่าใครเป็นผู้ให้บริการ
อดัม

9

ฉันใช้เสียงของTwilioและฉันก็ค่อนข้างประทับใจ ฉันแน่ใจว่าระบบSMSของพวกเขาไม่แตกต่างกันมาก วิธีนี้จะช่วยให้คุณสามารถส่งไปยังผู้ให้บริการใด ๆ โดยไม่ทราบที่อยู่อีเมลที่จะส่งไปที่


ดังนั้นคุณใช้ API ของพวกเขา คุณใช้มันอย่างไร
artlung

1
ฉันใช้ API เสียงของพวกเขาเพื่อโทรออกโดยใช้สคริปต์ PHP ฉันใช้มันเพื่อโทรออกและใช้เพื่อทำเสียงเป็นข้อความแล้วตอบรับจากผู้ใช้
Darryl Hein

5

นี่เป็นเพียงการส่ง แต่ฉันใช้เพนนี SMS สำหรับโครงการและโชคดีกับมัน หากคุณเกิดขึ้นจะใช้ทับทิมตรวจสอบอัญมณี penny_sms_muncher


4

อีกสองตัวเลือกที่ฉันเคยพิจารณาในอดีต:

Skype API
ส่งและรับ SMS โดยใช้ Skype API ใหม่ ฉันเดา Twilio ราคาถูกกว่า แต่ Skype มีให้บริการในหลายประเทศ (ถ้าคุณต้องการรับ SMS)

เสียบโทรศัพท์เข้ากับเซิร์ฟเวอร์ของคุณ
หากคุณอาศัยอยู่ในประเทศ (เช่นอาร์เจนตินา) ที่ บริษัท เกตเวย์ SMS คิดค่าใช้จ่ายจำนวนมากคุณอาจพบว่าถูกกว่าการซื้อโทรศัพท์และเสียบเข้ากับเซิร์ฟเวอร์ของคุณ (ขึ้นอยู่กับสภาพแวดล้อมของโฮสต์) จากนั้นคุณสามารถใช้ซอฟต์แวร์เช่นSMSToolkitเพื่อโต้ตอบกับโทรศัพท์



2

ฉันได้เขียนระบบ SMS สองวิธีดังกล่าวโดยใช้ Vidicom UK เป็นผู้ให้บริการ SMS (ไม่แน่ใจว่าพวกเขายังคงไป) โดยพื้นฐานแล้วพวกเขามี API ที่ใช้ HTTP ซึ่งคุณสามารถส่งและรับข้อความ SMS ได้ มันซับซ้อนเกินกว่าที่จะอธิบายโดยละเอียด แต่โดยพื้นฐานแล้วฉันมีสองตารางฐานข้อมูลหนึ่งตารางสำหรับรับข้อความขาเข้าที่ได้รับจากเกตเวย์และอีกอันหนึ่งสำหรับข้อความขาออกที่อยู่ในคิวแล้วส่งไปยังเกตเวย์

โดยทั่วไปแล้วฉันต้องแยกวิเคราะห์ข้อความที่เข้ามาเพื่อดูว่าพวกเขามีคำหลักเช่น CANCEL หรือ STOP แล้วประมวลผลข้อความตาม น่าเสียดายที่คุณได้รับข้อความขยะจำนวนมาก - คุณต้องประหลาดใจว่ามีคนส่งข้อความ SMS ไปยังหมายเลขผิดจำนวนมากดังนั้นคุณต้องตอบกลับว่า "ข้อความไม่เข้าใจ" เป็นต้น


2

หากคุณต้องการผู้ให้บริการ SMS เป็นกลุ่มราคาไม่แพงด้วย API สำหรับนักพัฒนาคุณสามารถใช้ www.SourceSMS.com - พวกเขาเสนอความคุ้มครองระหว่างประเทศและพวกเขามีสคริปต์ที่คุณสามารถดาวน์โหลดและรวมเข้ากับเว็บไซต์ของคุณ


1

อีกทางเลือกหนึ่งคือการใช้ฟังก์ชั่นเมลของ PHP และรายการเซิร์ฟเวอร์อีเมลของผู้ให้บริการดังนี้:

สร้างรูปแบบ HTML ในไฟล์ PHP

<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>

จากนั้นตั้งค่าว่าจะส่งจดหมายใด:

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";
}

ส่งอีเมล: ($ email, $ subject, $ msg, $ mail จากจะต้องมีการกำหนดและในรูปแบบที่เหมาะสม, ขอแนะนำให้คุณยังฆ่าเชื้ออินพุต)

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 มีการตั้งค่าอีเมลที่ถูกต้องใน php.ini หากคุณมีคำถามใด ๆ เพียงแค่ถาม



0

มีผู้ผลิตและผู้ให้บริการจำนวนมาก ฉันรู้จักเกตเวย์ SMS ของ Ozeki URL ต่อไปนี้สามารถช่วยคุณได้หากคุณต้องการโซลูชันในตัวด้วยโมเด็ม gsm หรือ SMPP / UCP / CMD หรือผู้ให้บริการรายอื่น เมื่อคุณตัดสินใจคำถามแรก: คุณต้องการส่งหรือรับ SMS กี่ครั้ง

SMS API HTTP ด้วยตัวอย่าง

SMS API สำหรับนักพัฒนา ASP / ASP.NET และตัวอย่างสำหรับนักพัฒนา PHP เกี่ยวกับวิธีตั้งค่าฟังก์ชันการทำงาน SMS สามารถให้ข้อมูลที่เป็นประโยชน์แก่คุณได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.