ก่อนอื่น ผมต้องขอออกตัวก่อนนะครับ ว่าผมไม่มีส่วนได้ ส่วนเสียอะไรกับ เว็บที่ให้บริการ sms ที่จะเป็นตัวอย่าง ในการเขียนโปรแกรม ติดต่อเพื่อส่งข้อความสั้น หรือ Short Message Service ที่รู้จักกันดีในชื่อ SMS ครับ
ก่อนอื่นเกริ่นกันเล็กน้อยว่า วิธีการในการส่ง sms นั้นทำได้หลายวิธี เช่น เขียนโปรแกรมไป ติดต่อกับมือถือ เพื่อส่ง sms ออกไป, เขียนโปรแกรมไปเชื่อมต่อกับ SMS Gateway ซึ่งก็มีอยู่หลายที่ครับ ซึ่งหากคุณมีเงินหน่อย ก็น่าจะสามารถไปเหมาค่า SMS โดยซื้อจากทาง Operator นั้นๆมาได้ (จำนวนเงินที่ต้องจ่าย ผมไม่ค่อยทราบ รู้แค่ว่าแพงพอควร)
โดยในบทความนี้ ผมได้นำเสนอวิธีการส่ง SMS ผ่านทางการเชื่อมต่อกับ บริการ SMS ของเว็บไซต์ http://www.applymail.com/ ซึ่งได้มีผู้ว่าจ้างผม ให้เขียนโปรแกรมเชื่อมต่อขึ้นมา เพื่อเค้าจะเอาไปประยุกต์ กับงานของเค้าอีกทีนึง
สิ่งที่คุณต้องมีก่อนที่จะเริ่มต้นทำตามกระบวนการพัฒนาโปรแกรม คือ
- โปรแกรม Visual Studio .net 2003
- เครื่องของคุณได้เชื่อมต่อ อินเตอร์เน็ต เอาไว้
ภาษาที่เลือกใช้คือ C# ครับ ซึ่งผมเองก็ยังใหม่สำหรับ C# เหมือนกัน เริ่มขั้นตอนกันเลย ดังนี้
1. ทำการเปิดบริการ SMS กับทางเว็บ http://www.applymail.com/ ซึ่งในการบวนการนี้ คุณจะได้ username และ password มาครับ
2. ทำการเปิดโปรแกรม Visual Studio .Net 2003 และเลือกสร้าง Project ใหม่ จากเมนู File > New > Project
3. ที่หน้าต่าง New Project ให้ทำการเลือก Visula C# Project ในช่อง Templates เลือก Windows Application และในช่อง Name ให้ป้อนชื่อ Project ว่า SendSMS ดังรูป
4. คลิกปุ่ม OK
5. ที่หน้า Form1 ให้คุณทำการลากวาง Control TextBox 2 ชิ้น และ Button 1 ชิ้น ไว้บน Form1 ดังรูป
6. ในช่อง textBox1 จะใช้สำหรับการใส่เบอร์โทรศัพท์ ปลายทางเช่น 0812345678 สำหรับในช่อง textBox2 จะเป็นช่องที่ใช้สำหรับ การป้อนข้อความที่จะส่ง ในที่นี่จะใช้ได้แค่เพียง ภาษาอังกฤษเท่านั้น ครับ
7. ทำการดับเบิ้ลคลิกที่ปุ่ม button1 แล้วทำการป้อนโค้ด ดังตาราง (อย่าลืมที่จะแก้ไข username ,password ที่คุณได้สมัครไว้นะครับ ไม่เช่นนั้นจะส่ง SMS ไม่ได้)
Private void button1_Click(object sender, System.EventArgs e)
{
string strData;
string strURL;
string strResult;
string szLanguage = "E";
string szUsername ="username";
string szPassword ="password";
strData = "msisdn="+this.textBox1.Text+"&user="+szUsername+"&pass="
+szPassword+"&lang="+szLanguage+"&msg="+this.textBox1.Text;
strURL = "http://smsgateway.applymail.com/cgi-bin/aspsendsms.cgi";
System.Net.WebRequest req = System.Net.WebRequest.Create(strURL);
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
byte [] bytes = System.Text.Encoding.ASCII.GetBytes(strData);
req.ContentLength = bytes.Length;
System.IO.Stream os = req.GetRequestStream ();
os.Write (bytes, 0, bytes.Length);
os.Close ();
System.Net.WebResponse resp = req.GetResponse();
System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
strResult = sr.ReadToEnd().Trim();
strResult = strResult.Substring(strResult.IndexOf("")+8,strResult.IndexOf("")-strResult.IndexOf("")-8 );
if(strResult=="OK")
{
MessageBox.Show("Send SMS Complete");
}else{
MessageBox.Show("Error to Send");
}
}
|
8. ทำการ Run เพื่อทดสอบโปรแกรม โดยการกดปุ่ม F5 จากนั้นในหน้าต่างที่ถูกเรียกขึ้นมา ให้คุณกรอกหมายเลขโทรศัพท์มือถือ ที่ต้อการส่งถึง พร้อมด้วยข้อความ (เป็นภาษาอังกฤษ) ในช่องด้านล่าง
9. ทำการคลิกปุ่ม Button1 เพื่อส่งข้อความ จะมีข้อความแจ้งผลการส่ง SMS ดังรูป
10. รอสักพัก มือถือปลายทาง จะได้รับข้อความที่คุณส่งไปครับ
ทิ้งทาย
สำหรับหลักการทำงาน ของโปรแกรมนี้อยู่ที่ การสร้าง Http เพื่อ Post ข้อมูล ไปยัง CGI (Common Gateway Interface) โดยทาง CGI จะทำการตรวจสอบ Username , Password ก่อนการส่ง หากตรวจสอบแล้ว ถูกต้อง ทาง CGI จะทำการเชื่อมต่อกับทาง Operator (เช่น AIS ,Dtac, Truemove, Hutch) เพื่อจัดส่งข้อความต่อไป
ในตัวอย่างนี้ ยังเป็นแค่ตัวอย่าง ยังไม่สามารถส่งภาษาไทยได้ รวมทั้งยังไม่มีการจำกัด ความยาวของข้อความ ที่จะส่ง (โดยส่วนมาก ภาษาอังกฤษ จะส่งได้ 160 ตัวอักษร ภาษาไทยส่งได้ 70 ตัวอักษร) ซึ่งผมจะได้นำมาเสนอ ในโอกาสต่อไปๆ ครับ
จากบทความนี้ คุณอาจนำไปประยุกต์ใช้งาน สำหรับโปรแกรมของคุณได้แล้วครับ แล้วพบกันใหม่กับ 9M |