ตัวอย่างหน้าชี้แจงการนำข้อมูลจราจรจาก Traffy ไปใช้เพื่อการศึกษาและงานวิจัย

TraffyBannerWithNSTDAandNECTEC

ข้อมูลเกี่ยวกับผู้ใช้ข้อมูลจราจร

นายณพงศ์ วาณิชยพงศ์
ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยธรรมศาสตร์
อาจารย์ที่ปรึกษา ดร.วสันต์ ภัทรอธิคม

วัตถุประสงค์ในการใช้ข้อมูลจราจรจาก Traffy

ทำงานวิจัยเกี่ยวกับการแยกประเภทข่าวที่ส่งผลกระทบต่อการจราจรโดยใช้วิธีการทาง Ontology เพื่อแยกระเภทข่าว ต้องการแบ่งข่าวจราจรออกเป็นประเภทต่างๆ เช่น รถติด อุบัติเหตุ ฝนตก  และทำเผยแพร่ข่าวเหล่านี้ ให้เป็นประโยชน์ต่อประชาชนทั่วไปในวงกว้างต่อไป

ผลงานที่เกิดขึ้นจากข้อมูลจราจร

    • Napong Wanichayapong, Wasawat Pruthipunyaskul, Wasan Pattara-Atikom, Pimwadee Chaovalit, Social-based Traffic Information Extraction and ClassificationThe 11th International Conference on Telecommunications for Intelligent Transport Systems (ITST2011), Saint-Petersburg, Russia, Aug 2011
    • Napong Wanichayapong, Wasan Pattara-Atikom, Ratchata Peachavanish, An Ontology Design for Traffic Incident Q&A System (to appear) in Proceedings, The 20th ITS World Congress (ITSW2013), Tokyo, Japan, Oct 2013
    • เช่น รายงาน บทความทางวิชาการ โปรแกรม วิทยานิพนธ์

getMOTLatLong

Description :

ให้ข้อมูลพิกัดจุดกึ่งกลาง (Centroid) และที่ตั้งของจังหวัด, อำเภอ, ตำบล, เขต, แขวง จากข้อมูลข้อกระทรวงคมนาคม
โดยรับชื่อจังหวัด, อำเภอ, ตำบล, เขต, แขวง จากผู้ใช้

Source :

กระทรวงคมนาคม

URL:

http://api.traffy.in.th/apis/apitraffy.php?api=getMOTLatLong&appid=&q=…&type=…&format=…&callback=.. .

API Status:

Online

Continue reading getMOTLatLong

เปิดตัวหน้าดูข้อมูลการใช้งาน API ของแต่ละ Applicaiton

usage-crop

นักพัฒนาสามารถดูข้อมูลปริมาณการใช้งาน Traffy API ของแต่ละ Application ของตัวเองได้แล้ววันนี้

Continue reading เปิดตัวหน้าดูข้อมูลการใช้งาน API ของแต่ละ Applicaiton

Traffy ปรับปรุงระบบใหม่และเปิดให้ลงทะเบียนขอใช้งานใหม่

เรามาดูกันว่าระบบ Traffy API ใหม่เปลี่ยนแปลงไปยังไงบ้าง

  • เปลี่ยน User Interface โดยรวม
  • เปลี่ยนไปใช้ Email ในการ Login แทนใช้ Username
    • เพื่อลดขั้นตอนการสมัคร
    • เพื่อป้องการการสมัคร User ซ้ำโดยใช้ Email เดียวกัน
  • ปรับปรุงวิธีการลงทะเบียนขอใช้ Traffy API (วิธีลงทะเบียนขอใช้ Traffy API)
    • การยืนยันตัวตนด้วย SMS เพื่อลดขั้นตอนการสมัคร
  • ปรับปรุงวิธีการลงทะเบียน Application เพื่อขอ AppID (วิธีลงทะเบียน Application เพื่อขอ AppID)
    • รวม AppID ประเภท Website และ Server IP เข้าด้วยกัน เป็นประเภท Website/ServerIP เพื่อลดความซ้ำซ้อนของการใช้งาน
    • ใน AppID ประเภท Website/ServerIP จะมีเฉพาะ AppID (ตัด Key ออก) ทำให้ AppID ประเภท Mobile/Session Key เท่านั้นที่มี AppID และKey เพื่อลดความซ้ำซ้อนของการใช้งาน
    • จากเดิม AppID เป็นตัวเลข เช่น 00000069 เป็นตัวหนังสือผสมกับตัวเลข เช่น 65cc4e4c เพื่อป้องกันการเดาลำดับของเลข AppID
  • ปรัปปรุงวิธีการ Reset Traffy API password (วิธี Reset Traffy API password)
  • Deactivated AppID และ User ที่ไม่มีการเรียกใช้ API เป็นเวลานานกว่า 6 เดือน(ไม่มีการใช้งานตั้งแต่วันที่ 1 เมษายน 2555)
    • หากนักพัฒนาที่ถูก Deactivated AppID และ User ต้องการจะใช้งาน ให้ทำการลงทะเบียนขอใช้งานใหม่
    • แนะนำ User ทุกท่านให้ทำการ Reset Password
    • หาก User ถูก Deactivated User หรือ ยังไม่ได้ลงทะเบียนใช้งาน ที่ตอบกลับจากระบบจะแจ้งว่า “ไม่พบ Email ในระบบ ให้ทำการสมัครใช้บริการ”
  • ปรับปรุงระบบ API Authentication (วิธีดึงข้อมูลจาก Traffy API ด้วย AppID แต่ละประเภท)
    • AppID ประเภท Website/ServerIP ส่งค่า AppID เพียงอย่างเดียวเพื่อใช้งาน API เพื่อลดความซ้ำซ้อนของการใช้งาน
    • AppID ประเภท Mobile/Session key ใช้วิธีการ Generate Session Key เหมือนเดิม
    • AppID เก่า สามารถใช้วิธีการ Authentication แบบเดิมได้

วิธี Reset Traffy API password

สำหรับนักพัฒนาที่ลืม password สำหรับเข้าระบบ Traffy API สามารถ reset password ได้ด้วยวิธีการง่ายๆ ต่อไปนี้นะครับ

  1. ไปที่ http://api.traffy.in.th
  2. หากจำรหัสผ่านไม่ได้ หรือ Sign in ด้วย Email แล้วระบบขึ้นว่า Not registered email or password incorrect
    Continue reading วิธี Reset Traffy API password

วิธีดึงข้อมูลจาก Traffy API ด้วย AppID แต่ละประเภท

เนื่องจากนักพัฒนาที่ต้องการดึงข้อมูลจาก 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);
?>

วิธีลงทะเบียน Application เพื่อขอ AppID

สำหรับนักพัฒนาที่ต้องการใช้ข้อมูลจาก Traffy เพื่อนำไปพัฒนาเว็บไซต์หรือ Application เราลองมาดูวิธีการลงทะเบียนขอ AppID กันนะครับ โดยนักพัฒนาจะต้องผ่านขั้นตอนลงทะเบียนขอใช้บริการ Traffy API (วิธีลงทะเบียนขอใช้ Traffy API) ก่อนการขอ AppID

  1. เข้าสู่ระบบด้วย Email และ Password ที่ลงทะเบียนไว้กับ Traffy API

    Continue reading วิธีลงทะเบียน Application เพื่อขอ AppID

วิธีลงทะเบียนขอใช้ Traffy API

ขณะนี้  Traffy ได้ปรับรูปแบบระบบลงทะเบียนขอใช้งานใหม่ และได้เปิดให้นักพัฒนาสามารถลงทะเบียนใช้งานได้อีกครั้งแล้วครับ

วิธีการสมัครใช้งาน Traffy API Continue reading วิธีลงทะเบียนขอใช้ Traffy API

Traffy API กลับมาให้บริการแล้วครับ

จาก “ประกาศปิดให้บริการ Traffy API ชั่วคราว ระหว่าง วันเสาร์ที่ 7 ก.ค. 2555 เวลา 6:00 น. ถึง วันอาทิตย์ที่ 8 ก.ค. 2555 เวลา 6:00 น.” http://wp.me/p14xgO-1iP

ขณะนี้ Traffy API สามารถกลับมาให้บริการกับนักพัฒนาแล้วครับ

ประกาศปรับปรุงรูปแบบการแสดงผล getVMS API

เนื่องจากทีมงานพบว่า getVMS API http://info.traffy.in.th/getvms/
มีการแสดงผล JSON ผิด Syntax ทำให้ไม่สามารถใช้ Parser function ที่มีได้

ทีมงานได้แจ้งให้นักพัฒนาทราบดังนี้

ประกาศปรับปรุง getVMS API http://wp.me/p14xgO-1is และ
ปรับปรุงรูปแบบการแสดงผล getVMS API http://wp.me/p14xgO-1iC

ทีมงานพบว่า การปรับปรุงนี้นักพัฒนาบางส่วน ไม่สามารถใช้งานได้

ทีมงานจึงทำการปรับปรุงอีกครั้งดังนี้

  1. format=JSON จะแสดงผล Syntax ผิด และทำให้ไม่สามารถใช้ Parser function ที่มีได้ ดังเดิม
  2. format=JSONN จะแสดงผล Syntax ที่ถูกต้อง
  3. format=JS&call=abc จะแสดงผล Syntax ผิด และทำให้ไม่สามารถใช้ Parser function ที่มีได้ ดังเดิม
  4. format=JSS&call=abc จะแสดงผล Syntax ที่ถูกต้อง

หากพบปัญหาการใช้หรือมีคำแนะนำติชม งานสามารถ email แจ้งทีมงานได้ที่  traffy@nucleus.nectec.or.th

ขออภัยในความไม่สะดวกครับ

ปรับปรุงรูปแบบการแสดงผล getVMS API

เนื่องจากทีมงานพบว่า getVMS API http://info.traffy.in.th/getvms/

มีการแสดงผล JSON ผิด Syntax ทำให้ไม่สามารถใช้ Parser function ที่มีได้

ตามที่ได้ประกาศไว้ที่ http://wp.me/p14xgO-1is

ทีมงานได้ทำการปรับปรุงแก้ไข และ ปรับเปลี่ยนการแสดงผล JSON ให้ถูกต้องเรียบร้อยครับ

หากพบปัญหาการใช้หรือมีคำแนะนำติชม งานสามารถ email แจ้งทีมงานได้ที่  traffy@nucleus.nectec.or.th ครับ