เนื่องจากนักพัฒนาที่ต้องการดึงข้อมูลจาก Traffy API จะต้องทำการลงทะเบียน Application เพื่อขอ AppID ก่อน โดยแบ่งเป็น 2 แบบ คือ 1) Website/Server IP และ 2) Mobile บทความนี้จึงขอนำเสนอวิธีการใช้งานข้อมูลจาก Traffy API ด้วย AppID แต่ละประเภท ดังนี้

1) แบบ Website/Server IP

Application ที่ทำการลงทะเบียนเอาไว้เป็นประเภท Website/Server IP จะสามารถใช้งานได้บน Website หรือ IP ที่ลงทะเบียนเอาไว้เท่านั้น
โดยเมื่อลงทะเบียนเสร็จจะได้รับ AppID มาเพื่อให้เรียกใช้งาน ดังข้อมูล AppID ด้านล่าง

กรณี Referrer เป็น Website

จากภาพด้านบน AppID 65cc4e4c เป็น AppID ประเภท Website/Server IP สามารถใช้ได้บนเว็บไซต์ที่ลงทะเบียนไว้คือ  http://info.traffy.in.th เท่านั้น
หากข้อมูลที่ต้องการดึงเป็นข้อมูลประเภท  Text จาก Traffy API เช่น getCCTV, getVMS, getIncident นักพัฒนาสามารถดึงข้อมูลได้ผ่านแท็ก html ที่ชื่อ a href โดยอ้างอิงถึง URL ของ API ตัวนั้นๆ ด้วยรูปแบบ <a href=”[API URL]“>
ดังตัวอย่าง

<a href="http://cloud.traffy.in.th/apis/apitraffy.php?format=TABLE&api=getVMS&appid=[AppID]">

หากข้อมูลที่ต้องการดึงเป็นข้อมูลประเภทรูปภาพจาก Traffy API นักพัฒนาสามารถเรียกใช้ Traffy API ประเภท รูปภาพ เช่น getcctvimg, getvmsimg ได้ผ่านแท็ก html ที่ชื่อ img src โดยอ้างอิงถึง URL ของ API นั้นๆ ด้วยรูปแบบ <img src=”[API URL]“>
ดังตัวอย่าง

<img alt="" src="http://cloud.traffy.in.th/apis/apitraffy.php?api=getvmsimg&appid=[AppID]&id=16" />

ตัวอย่าง

คลิกเพื่อแสดงข้อมูลจาก getCCTV

แสดงภาพ CCTV

กรณี Referrer เป็น IP

การใช้ Referrer Website เป็นหมายเลข IP นี้ เหมาะสำหรับนักพัฒนาที่ต้องการ sync ข้อมูลจราจรจาก Traffy โดยวิธีนี้จำเป็นต้องมี fixed IP server เท่านั้นจึงสามารถใช้วิธีนี้ได้

ตัวอย่าง PHP Code สำหรับดึงข้อมูล getIncident

<?php
$AppID= '65cc4e4c';  //จากภาพด้านบน
$url = "http://cloud.traffy.in.th/apis/apitraffy.php?api=getIncident&appid=$AppID&format=XML";
$response = file_get_contents($url);
print_r($response);
?>

หมายเหตุ

กรณีนักพัฒนาใช้ทำงานบน server ที่ไม่ได้ลงทะเบียนไว้ หรือใส่ IP address ไม่ตรงกับที่ลงทะเบียนไว้ จะได้ response กลับมาดังนี้ Wrong ip name. you ip is [YOUR IP ADDRESS]
ให้นำ IP address ที่ปรากฏใน response มาลงทะเบียน Application ใหม่ และใช้ AppID ใหม่ที่ได้รับ มาเรียกใช้งาน

2) แบบ Mobile

Application ที่ทำการลงทะเบียนประเภท Mobile/Session Key เหมาะสำหรับนักพัฒนาที่ต้องการพัฒนา Application บนมือถือ หรือ Desktop รวมถึง Server ที่ไม่มี URL/IP ที่แน่นอน
นักพัฒนาจำเป็นต้องสร้าง Session Key ขึ้นมา เพื่อดึงข้อมูล API โดย Session Key ที่สร้างขึ้นจะมีอายุการใช้งาน 1 วัน (ถูกลบออกจากระบบเวลาเที่ยงคืนของทุกๆ วัน)

จากตารางด้านบน AppID 12cb7eda (บรรทัดที่ 2) เป็น AppID ประเภท Mobile/Session Key

  • นักพัฒนาสามารถสร้าง Session Key ได้โดยส่ง AppID มาที่ http://cloud.traffy.in.th/apis/getKey.php?appid=[AppID] เพื่อขอ Random String มาใช้สร้าง Session Key
  • ถ้า AppID ที่ส่งมาถูกต้องระบบจะส่ง Random String กลับมาให้นักพัฒนา
  • Session Key มีส่วนประกอบดังนี้
    • ส่วนแรก นำ AppID มาต่อ (Concatenation) กับ Random String ที่ได้รับ แล้วทำการ Hash ด้วย MD5
      Session Part 1 = MD5(AppID.Random String)
    • ส่วนที่สอง นำ Key มาต่อ (Concatenation) กับ Random String ที่ได้รับ แล้วทำการ Hash ด้วย MD5
      Session Part 2 = MD5(Key.Random String)
    • นำ Session Key ทั้งสองส่วนมาต่อกัน (Concatenation) แล้วส่งมาเรียกใช้ API
    • Session Key = Session path 1. Session path 2
  • Session Key ที่คำนวณได้สามารถนำไปเรียกใช้ข้อมูลจาก API ได้ตามปกติ

ตัวอย่าง PHP Code สำหรับดึงข้อมูล getIncident

<?php
//ขั้นตอนที่ 1: สร้าง random string
$AppID='12cb7eda';// จากภาพด้านบน
$hiddenkey = 'dUjgtmTc2Y';  //จากภาพด้านบน
$getRandomStrURL = "http://cloud.traffy.in.th/apis/getKey.php?appid=$AppID";
$randomStr = file_get_contents($getRandomStrURL);

//ขั้นตอนที่ 2 สร้าง session key
$passKey = md5($AppID.$randomStr).md5($hiddenkey.$randomStr);

//ขั้นตอนที่ 3 เรียกใช้ข้อมูลจาก service API
$url = "http://cloud.traffy.in.th/apis/apitraffy.php?api=getIncident&key=$passKey&format=JSON";
$response = file_get_contents($url);
print_r($response);
?>