วันอาทิตย์ที่ 14 ธันวาคม พ.ศ. 2557

สร้าง php สคริปสำหรับส่งข้อมูล(method post)อัตโนมัติ สำหรับระบบงานที่ไม่ต้องการใช้คนช่วย

ปัญหาที่ผู้เขียนกำลังจะแก้อยู่ในขณะนี้คือ ผู้เขียนต้องการสร้าง Form/Submit ธรรมดาสำหรับผู้พัฒนาเวบแอพพลิเคชั่น การสร้าง Form/Submit ทำได้ไม่ยากเพราะมีซอร์สโค๊ดอยู่มากมาย ปัญหาที่ผู้เขียนพบก็คือหากเรามีForm แต่ไม่มีใครมากด Submit ให้ระบบก็เลยไม่ทำงานแบบอัตโนมัติ

บางคนอาจจะนึกหน้าตา Form/Submit ไม่ออกผู้เขียนก็เลยจะได้นำมาให้ดูเป็นตัวอย่าง จากตัวอย่างเป็นการสร้างฟอร์ม เพื่อส่งข้อความสั้น(SMS) ผ่านเวบไซต์ clickatell.com เหตุผลที่ผู้เขียนเลือกใช้ผู้ให้บริการของ clickatell เพราะว่ามีการทำงานมาตรฐาน เป็นที่นิยมใช้กันมาก


จากปัญหาข้างต้นเมื่อผู้เขียนสร้างฟอร์มเสร็จสมบูรณ์ และป้อนค่าต่างๆ ลงเท็กซ์บ็อกแบบอัตโมมัติ ปรากฎว่าไม่มีใครมาช่วยกดปุ่ม Submit การแก้ปัญหาให้โปรแกรมทำงานแบบอัตโนมัติก็เลยยังทำไม่ได้

ผู้เขียนก็เลยได้พยายามค้นคว้าหาคำตอบเพิ่มเติมว่า เวบแอพพลิเคชั่นง่ายๆแบบนี้ต้องทำยังไง ครั้นจะโทรไปสอบถามนักพัฒนา PHP สคริปก็ยังไม่ค่อยกล้าถาม ต้องพยายามหาคำตอบด้วยตัวเอง ในที่สุดผู้เขียนก็พบไลบราลี่ตัวหนึ่งที่ทำงานได้เรียกว่า curl

<?php
$ch = curl_init();                    // initiate curl
$url = "http://api.clickatell.com/http/sendmsg.php"; // where you want to post data
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, true);  // tell curl you want to post something
curl_setopt($ch, CURLOPT_POSTFIELDS, "user=xxxxxx&password=xxxxxx&api_id=xxxxxx&from=xxxxxx&to=xxxxxx&text=xxxxxx"); // define what you want to post
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return the output in string format
$output = curl_exec ($ch); // execute

curl_close ($ch); // close curl handle
 
var_dump($output); // show output
 
?>

อธิบายการทำงานของโค๊ด

curl_init   เป็นฟังก์ชั่นเริ่มต้นการใช้งานไลบรารี่ curl
url           เป็นตำแหน่งของเวบแอพพลิเคชั่นที่ต้องการเรียกให้ทำงาน
setopt     เป็นกำหนดพารามิเตอร์ต่างๆ ก่อนเรียกให้ฟังก์ชั่น curl ทำงาน
curl_exec เป็นการประมวลผลคำสั่งพูดง่ายๆ ว่าเป็นการกดปุ่ม submit นั่นเอง
curl_close จบการทำงานของไลบรารี่ curl

สำหรับการติดตั้งโปรแกรม curl และ php5 สำหรับระบบปฏิบัติการ Ubuntu ให้ดำเนินการดังนี้

apt-get install curl libcurl3 libcurl3-dev php5-curl
/etc/init.d/apache2 restart
ผู้เขียนทดลองแปะโค๊ดตัวอย่างการส่งข้อความสั้นผ่าน API ที่ผู้เขียนใช้บริการอยู่ ซึ่งมีค่าใช้จ่ายถูกกว่า Clickatell มาก เพื่อให้ใช้เป็นข้อมูลสำหรับการนำไปประยุกต์ใช้งาน สำหรับแอพพลิเคชั่น SMS PROXY ที่ผู้เขียนกำลังพัฒนาอยู่จะได้ประโยชน์ในทุกๆ แอพพลิเคชั่นที่ต้องการเรียกใช้งานระบบ SMS

<?php
$ch = curl_init();                    // initiate curl
$posturl = "http://api.sms-delivery.com/api/sendsms/plain";
$fields = "user=xxxx&password=xxxx&sender=TPIT&GSM=6686xxxxxxx&SMSText=TEST SENDING MESSAGE FROM API CURL";
curl_setopt($ch, CURLOPT_URL,$posturl);
curl_setopt($ch, CURLOPT_POST, 1);  // tell curl you want to post something
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); // define what you want to post
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return the output in string format
$output = curl_exec ($ch); // execute

curl_close ($ch); // close curl handle

var_dump($output); // show output

?>
 


ต้องขอขอบคุณ บจก.ไทย พรอสเพอรัส ไอที ผู้นำด้านการให้บริการ thaigpstrack ด้วยสินค้าคุณภาพ นำเข้าจากผู้ผลิตโดยตรง มั่นใจได้ในคุณภาพของสินค้า