PHP ส่งข้อความเข้ามือถือ ( SMS )ด้วย Nexmo SMS API

PHP-ส่งข้อความเข้ามือถือ2
PHP-ส่งข้อความเข้ามือถือ2

PHP ส่งข้อความเข้ามือถือ ( SMS )ด้วย Nexmo SMS API



PHP ส่งข้อความเข้ามือถือ ( SMS )ด้วย Nexmo SMS API

อันที่จริงมีผู้ให้บริการ SMS Gateway อยู่หลายเจ้า ทั้งในไทยและต่างประเทศ ทั้งแบบมี API ให้นักพัฒนาได้ใช้งานและไม่มี API ให้ใช้งาน แต่โดยทั่วไปแล้ว ลักษณะการใช้งานก็จะไม่แตกต่างกันมาก ความหมายคือในด้านของการพัฒนา เขียนโปรแกรมจะเหมือนกัน

สำหรับ Nexmo SMS Gateway นั้น จะเป็นบริการส่งข้อความได้ทั่วโลก แบบมีค่าใช้จ่ายต่อข้อความ แต่เบื้องต้นเมื่อสมัครสมาชิกเราจะได้เครดิตฟรีมา €2 ไว้สำหรับทดสอบเบื้องต้น ซึ่งก็ส่งได้ประมาณ 20 ครั้ง ก็เพียงพอสำหรับการทดสอบเบื้องต้น ลองมาดูวิธีทดสอบส่ง SMS โดยใช้ PHP กันครับ


PHP ส่ง SMS ฟรี ด้วย Nexmo SMS API

  • 1. สมัครสมาชิกที่เว็บไซต์ nexmo.com


    PHP-ส่งข้อความเข้ามือถือ

  • 2. สร้างไฟล์ php หรือ controller ตั้งชื่อว่า Sms.php
  • 3. เข้าไปที่หน้า Dashboard ของ nexmo.com ไปที่ getting start จากนั้น copy key และ secret มากำหนดตัวแปรใน php ดังนี้
    class Sms extends CI_Controller {
    	
    	public function __construct() {
            parent::__construct();
    		$this->load->library('unit_test');
        }
    	public function sendSMS(){
    		$to = "6685xxxxxx"; // รหัสประเทศไทย 66 และตามด้วยเบอร์ที่จะส่งข้อความไป
    		$from = "codebee";
    		$api_key = "********"; // api key เอาจากหน้า dashboard
    		$api_secret = "*************"; // secret key เอาจากหน้า dashboard
    		$text = "Hello PHP SMS"; // ข้อความที่จะส่ง
    		
    		$fields = array( 'api_key'=>$api_key, 'api_secret'=>$api_secret, 'from'=>$from, 'to'=>$to, 'text'=>$text);
    	    $POST = '';
    	    foreach($fields as $key=>$value) {
    		  $POST .= $key . "=" . $value . "&";
    	    }
  • 4. ใช้ความสามารถของ curl เพื่อส่งตัวแปรไปที่ rest api ของ nexmo

    $url = 'https://rest.nexmo.com/sms/json';
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
    $response = curl_exec($ch);
    echo($response);
  • 5. ทดสอบการทำงานโดยการรันไปที่เมธอด sms/sendSMS หากเป็นเวอร์ชั่นฟรี ผลลัพธ์ที่ได้คือจะยังมีข้อความกำกับอยู่ว่าเป็น demo version ดังรูป


    PHP-ส่งข้อความเข้ามือถือ

  • 6. ระบบจะ return ข้อมูล json กลับมาแสดงข้อมูลสถานะการส่ง สำเร็จหรือไม่สำเร็จ เหลือเงินเท่าไหร่ และข้อความที่ส่งไปเมื่อสักครู่นี้ใช้เงินไปเท่าไหร่
    { "message-count": "1", "messages": [{ "to": "6685xxxxxx", "message-id": "0E000000A2BE2737", "status": "0", "remaining-balance": "1.86200000", "message-price": "0.02300000", "network": "52018" }] }