Application Programming Interface (API)

by Little Bear @1 ต.ค. 54 21:44 ( IP : 122...80 ) | Tags : Programing , PHP

ในที่สุดก็จะต้องเขียน API แน่นอน แต่วันไหนกันนะ

ได้อ่านตัวอย่างจาก Application Programming Interface (API) เป็นโปรแกรมที่ THSMS ได้เตรียมช่องทางการส่งข้อความผ่าน API ไว้หลายช่องทางโดย Support format ต่างๆอาทิเช่น POST, GET, REST, SOAP, XMLRPC พร้อมทั้งได้เตรียมโค๊ดตัวอย่างให้คณสามารถ Download ไปใช้งานได้ทันที

เลยขอตัวอย่างมาเก็บไว้เพื่อศึกษาในภายหลัง ขออนุญาตเจ้าของบทความไว้ที่นี้แล้วกันนะครับ

ค่าพารามิเตอร์ที่ส่งมาให้ API

ค่าตัวแปร ชนิด คำอธิบาย

method request ต้องการเรียกใช้ service อะไร โดยมีค่าที่เป็นไปได้คือ

credit = ตรวจสอบจำนวนเคดิตที่เหลือ

send = ส่งข้อความ

username request ชื่อผู้ใช้งานที่ Login เข้าสู่ระบบ

password request รหัสผ่านที่ใช้ Login เข้าสู่ระบบ

from request ชื่อ sender ที่ต้องการส่งโดยต้องขอชื่อจากทางเว็บไซต์ก่อน ตัวอย่าง 0000

to request หมายเลขของผู้รับเช่น 0899999999

message request ข้อความที่จะส่ง

status reply สถาณะที่ API ตอบกลับมา โดยมีค่าสองอย่างคือ success และ fail

message reply หาก status = fail จะมี message มาด้วยโดยจะบอกว่า fail เนื่องจากสาเหตุอะไร

uuid reply Universally Unique Identifier เป็นหมายเลขยืนยันขอความที่ส่ง โดยจะเป็นตัวยืนยันกับทาง API ว่าข้อความดังกล่าวได้ถูกส่งไปจริงหรือไม่

ตัวอย่างข้อความตอบกลับ โดยการเรียกใช้ method=credit

< ?xml version="1.0" encoding="UTF-8"?>

success
0

ตัวอย่างข้อความตอบกลับ โดยการเรียกใช้ method=send

< ?xml version="1.0" encoding="UTF-8"?>

OK
0001-3d2f07cc-4dbb4356-a040-4f869e19
7
success

ตัวอย่างการส่งข้อความโดยใช้ PHP + CURL

< ?php
$sms = new thsms();

$sms->username   = 'username';
$sms->password   = 'password';

$a = $sms->getCredit();
var_dump( $a);

$b = $sms->send( '0000', '0898765432', 'ทดสอบ');
var_dump( $b);

class thsms
{
     var $api_url   = 'http://www.thsms.com/api/rest';
     var $username  = null;
     var $password  = null;

    public function getCredit()
    {
        $params['method']   = 'credit';
        $params['username'] = $this->username;
        $params['password'] = $this->password;

        $result = $this->curl( $params);

        $xml = @simplexml_load_string( $result);

        if (!is_object($xml))
        {
            return array( FALSE, 'Respond error');

        } else {

            if ($xml->credit->status == 'success')
            {
                return array( TRUE, $xml->credit->status);
            } else {
                return array( FALSE, $xml->credit->message);
            }
        }
    }

    public function send( $from='0000', $to=null, $message=null)
    {
        $params['method']   = 'send';
        $params['username'] = $this->username;
        $params['password'] = $this->password;

        $params['from']     = $from;
        $params['to']       = $to;
        $params['message']  = $message;

        if (is_null( $params['to']) || is_null( $params['message']))
        {
            return FALSE;
        }

        $result = $this->curl( $params);
        $xml = @simplexml_load_string( $result);
        if (!is_object($xml))
        {
            return array( FALSE, 'Respond error');
        } else {
            if ($xml->send->status == 'success')
            {
                return array( TRUE, $xml->send->uuid);
            } else {
                return array( FALSE, $xml->send->message);
            }
        }
    }
    
    private function curl( $params=array())
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->api_url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( $params));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        $response&nbsp; = curl_exec($ch);
        $lastError = curl_error($ch);
        $lastReq = curl_getinfo($ch);
        curl_close($ch);

        return $response;
    }
}
?>

ตัวอย่างการส่งข้อความผ่าน Shell Script โดยส่งแบบ GET

#!/bin/bash

USERNAME=demo
PASSWORD=demo
FROM=0000
TO=0898765432
MESSAGE=Test
curl -q "http://www.thsms.com/api/rest?method=send&username=$USERNAME&password=$PASSWORD&from=$FROM&to=$TO&message=$MESSAGE"

ที่มา THSMS.COM







แสดงความคิดเห็น

« 5731
หากท่านไม่ได้เป็นสมาชิก ท่านจำเป็นต้องป้อนตัวอักษรของ Anti-spam word ในช่องข้างบนให้ถูกต้อง
The content of this field is kept private and will not be shown publicly. This mail use for contact via email when someone want to contact you.
Bold Italic Underline Left Center Right Ordered List Bulleted List Horizontal Rule Page break Hyperlink Text Color :) Quote
คำแนะนำ เว็บไซท์นี้สามารถเขียนข้อความในรูปแบบ มาร์คดาวน์ - Markdown Syntax:
  • วิธีการขึ้นบรรทัดใหม่โดยไม่เว้นช่องว่างระหว่างบรรทัด ให้เคาะเว้นวรรค (Space bar) ที่ท้ายบรรทัดจำนวนหนึ่งครั้ง
  • วิธีการขึ้นย่อหน้าใหม่ซึ่งจะมีการเว้นช่องว่างห่างจากบรรทัดด้านบนเล็กน้อย ให้เคาะ Enter จำนวน 2 ครั้ง