เรียกค่า api ของกรมอุตุนิยมวิทยา

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
eange08
PHP VIP Members
PHP VIP Members
โพสต์: 16367
ลงทะเบียนเมื่อ: 22/12/2020 10:09 am

เรียกค่า api ของกรมอุตุนิยมวิทยา

โพสต์ที่ยังไม่ได้อ่าน โดย eange08 »

ทำไฟล์ javascript เพื่อเรียกค่าจากกรมอุตุแต่ไม่มีค่าอะไรออกมาเลยนะคะ ต้องเขียนเรียกออกมายังงัยค่ะ

code ในไฟล์ javascript

โค้ด: เลือกทั้งหมด

$(function() {  
  var settings = {
  "async": true,
  "crossDomain": true,
   "url": "https://data.tmd.go.th/api/WeatherToday/V1/?type=json",
  "method": "GET",
 
}

    $.ajax(settings).done(function (response) {
      console.log(response);
    });
});
Screenshot from 2021-01-19 15-28-05.png
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41336
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: เรียกค่า api ของกรมอุตุนิยมวิทยา

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

โค้ดตัวอย่างเอามาจากไหน ยังไม่มีส่วนของ TOKEN

แนะนำลองใช้ PHP เรียก แทน การใช้ javascript จะ debug และ แก้ปัญหาได้ยากกว่า PHP
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
eange08
PHP VIP Members
PHP VIP Members
โพสต์: 16367
ลงทะเบียนเมื่อ: 22/12/2020 10:09 am

Re: เรียกค่า api ของกรมอุตุนิยมวิทยา

โพสต์ที่ยังไม่ได้อ่าน โดย eange08 »

ตอนนี้ได้เปลี่ยนไปเรียกไฟล์ php แทนนะคะ โดย
1. ในไฟล์ javascript

โค้ด: เลือกทั้งหมด

$(function() {  
 $.post('testdo.php', {'file_id': ''}, function (result) {          
  });
});
2. ไฟล์ testdo.php อันนี้เรียก api ของเว็บนี้ https://data.tmd.go.th/nwpapi/doc/apido ... 5%E0%B9%88

โค้ด: เลือกทั้งหมด

<?php
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://data.tmd.go.th/nwpapi/v1/forecast/location/daily/place?province=นนทบุรี&fields=tc_max,rh&date=2021-01-19&duration=2",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "accept: application/json",
    "authorization:Bearer xxxx", //---ตรง xxxx เราต้องลงทะเบียนขอ token มี link อยู่ข้างล่าง
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
3. ผลที่ response กลับมา
Screenshot from 2021-01-19 15-53-14.png
(api จะต้องลงทะเบียนเพื่อเอา token วิธีดูตามในนี้ค่ะ : https://data.tmd.go.th/nwpapi/doc/main/ ... cess-token)
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 61