วิธีการใช้ app id เรียกใช้ข้อมูลจาก Traffy

บทนำ

สำหรับระบบการเรียกข้อมูลจาก Traffy นั้นทางเราไม่อนุญาติให้ดึงข้อมูลโดยตรง
ผู้ที่จะใช้งานนั้นจะต้องทำการลงทะเบียน website ที่ใช้งานเพื่อให้ได้ appid และ key สำหรับใช้ดึงข้อมูล
โดยการใช้งาน APPID นั้นแบ่งเป็น 3 วิธี

วิธีที่ 1 web referer

เหมาะสำหรับนักพัฒนาที่ต้องการนำข้อมูลมาแสดงบน website ของตนเอง
โดยวิธีนี้เป็นการนำ link ไปใส่ใน website ของตนได้ทันที
โดยเวลาลง appid จะต้องลงที่ชื่อ url ตรงกับ page ที่เรียกไว้เช่น

วิธีการสร้าง appid สำหรับ web referer:

  • login ที่หน้า api.traffy.in.th/apis/ กรณีที่ยังไม่ได้ลงทะเบียนให้ลงทะเบียนก่อน
  • เมื่อเข้าระบบให้กดปุ่ม “เพิ่ม”
  • กรอก url ที่ต้องการให้ข้อมูลปรากฏ

  • เมื่อท่านกดปุ่ม ตกลง แล้วจะได้ appid และ key ดังภาพ

ตัวอย่าง

เขียน html สำหรับดึงข้อมูลจราจรโดยเข้าจาก โดยตัวอย่างนี้ใช้ APPID คือ 0000001
โดยลงทะเบียนสำหรับในงานบน url “http://athena.traffy.in.th/apis/”
โดยหากท่านต้องการข้อมูลที่เป็น txt ได้แก่ api getIncident,getCL เป็นต้น
ท่านสามารถใช้ tag html <a hef=”[api url]”>
หากต้องการข้อมูลที่แสดงเป็นภาพท่านสามารถ <img src=”[api url]”>

ยกตัวอย่าง การใช้เรียกข้อมูล

<a href="http://athena.traffy.in.th/apis/apitraffy.php?api=getCL&q=all&key=[your key]&appid=[app id]>

ยกตัวอย่าง การเรียกข้อมูลประเภทภาพ

<img src="http://api.traffy.in.th/apis/apitraffy.php?api=getcctvimg&q=all&key=[your key]&appid=[app id]>

ตัวอย่างการใช้ webpage ที่ใช้

http://athena.traffy.in.th/apis/show.php

แต่หากเข้าด้วยชื่อ domain อื่นๆ เช่นเข้าด้วย

http://api.traffy.in.th/apis/show.php

จะไม่สามารถนำข้อมูลมาแสดงได้เนื่องจาก appid ไม่ตรงกับที่ลงทะเบียนไว้

วิธีที่2 server sync

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

วิธีการสร้าง appid สำหรับ server sync

  • login ที่หน้า api.traffy.in.th/apis/ กรณีที่ยังไม่ได้ลงทะเบียนให้ลงทะเบียนก่อน
  • เมื่อเข้าระบบให้กดปุ่ม “เพิ่ม”
  • กรอก ip address server ที่ท่านต้องการ sync ข้อมูลซึ่งต้องเป็น fixed ip เท่านั้น
  • ทดลองเขียนโปรแกรมดึงข้อมูลจาก server

ตัวอย่างการดึงข้อมูลจาก server ด้วย php

<?php
     $url = "http://athena.traffy.in.th/apis/apitraffy.php?format=XML&api=getIncident&key=XXX&appid=0000009X";
     $web = fopen($url,'r');
     $xml  = stream_get_contents($web);
     echo $xml;
     fclose($web);
?>

หมายเหตุ: กรณีที่ user ไม่ได้นำโปรแกรมไปทำงานบน server ที่ไม่ได้ลงทะเบียนไว้หรือใส่ ip address ผิดจากที่ลงทะเบียน จะได้ response กลับมาดังนี้ Wrong ip name. you ip is [YOUR IP ADDRESS], Please use api on registered server. ให้นำ ip address ที่ปรากฏใน response มาสร้าง appid เพิ่มเติมสำหรับ ip นั้นๆ และให้ใช้ key และ appid ในโปรแรกมสำหรับการ sync ข้อมูลของท่าน

วิธีที่3 session key

เหมาะสำหรับนักพัฒนา application ทั่วไปหรือมี server ที่ไม่สามารถ fixed ip ของตนเองได้โดยวิธีนี้ผู้พัฒนาจำเป็นจะต้องสร้าง session key สำหรับเรียกใช้ข้อมูลตามรูปแบบที่ทางเรากำหนดไว้  โดย session key นี้สามารถใช้งานได้ 1 วัน

วิธีการสร้าง session key

  • นำ appid ที่มีไปขอ random string ที่ http://api.traffy.in.th/apis/getKey.php?appid=[app id] โดยที่ [app id] เป็นหมายเลขที่ได้จากการลงทะเบียนของเรา
  • ถ้าหาก appid ของคุณถูกต้องแล้วคุณจะได้ random string กลับมา
  • ให้สร้าง session key ดังนี้
    • ส่วนแรกสร้างจาก appid+randomstring และเข้ารหัสด้วย md5
    • ส่วนที่สองสร้างจาก appid + randomstring และเข้ารหัสด้วย md5
    • seesion key = ส่วนแรก + ส่วนที่สอง
  • session key ที่ได้สามารถนำไปเรียกใช้ข้อมูลจาก api ได้ตามปกติ

ตัวอย่างเขียนด้วย php

<?php
     //ขั้นตอนที่ 1: สร้าง random string
     $appid= 'XXXXXXXX';
     $hiddenkey = 'XXXXXXXXX';
     $getKeyURL = "http://api.traffy.in.th/apis/getKey.php?appid=$appid";
     $web = fopen($getKeyURL,'r');
     $keyTxt = stream_get_contents($web);

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

     //ขั้นตอนที่ 3 เรียกใช้ข้อมูลจาก service api
     $service = "http://api.traffy.in.th/apis/apitraffy.php";
     $r = fopen("$service?api=getLinkALLInfo&appid=$appid&key=$passKey&format=XML","r");
     $response= stream_get_contents($r);
      header('Content-Type:text/xml');
     echo $response;
     fclose($web);
     fclose($r);
?>

2 Responses to วิธีการใช้ app id เรียกใช้ข้อมูลจาก Traffy

  1. att says:

    รอเอา code รูปมันไม่ขึ้นเลยคับ

  2. รบกวนช่วยโพสรายละเอียดของ code ที่เขียน หรือ url ที่คุณลองเขียนหน่อยได้หรือไม่ครับ
    กรณีที่ภาพไม่ขึ้นหรือไม่แสดงข้อมูล ส่วนใหญ่มาจาก url กับ appid ไม่ตรงกับที่ลงทะเบียนไว้นะครับ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: