搜尋
首頁php教程php手册微信公众号天气查询接口实例,公众天气查询实例

微信公众号天气查询接口实例,公众天气查询实例

这是来自百度API的一个天气查询的接口,支持历史7天和未来4天的天气情况查询,接口不错,分享给大家。

接口申请地址:http://apistore.baidu.com/apiworks/servicedetail/112.html

首先,获取一下apikey(貌似需要手机验证码认证下)

我调用的是历史7天和未来4天的接口,接口地址是:

http:<span>//</span><span>apis.baidu.com/apistore/weatherservice/recentweathers</span>

我将这个天气查询的功能集成在了微信公众平台上,支持未来4天天气查询,包括:当前温度、pm值、风向、风力、最高温度、最低温度、天气状态的查询,效果如下:

闲话不多说,我就喜欢来点直接的,核心代码如下:

<span> 1 <span>//<span>接收到文本信息
<span> 2     <span>private <span>function receiveText(<span>$object<span>){
<span> 3         <span>//<span>多个空格缩为一个
<span> 4         <span>$keyword = <span>$object-><span>Content;
<span> 5         <span>$keyword=<span>preg_replace("/\s(?=\s)/","\\1",<span>$keyword<span>);
<span> 6         <span>$funcFlag = 0<span>;
<span> 7         <span>if(<span>strpos(<span>$keyword," "<span>)){
<span> 8             <span>//<span>echo '有空格';
<span> 9             <span>$arr = <span>explode(" ",<span>$keyword<span>);
<span>10             <span>if(<span>$arr[0]=="天气"<span>){
<span>11                 <span>$dateArray = <span>array<span>();
<span>12                 <span>$ch =<span> curl_init();
<span>13                 <span>$city=<span>urlencode(<span>$arr[1<span>]);
<span>14                 <span>$url = 'http://apis.baidu.com/apistore/weatherservice/recentweathers?cityname='.<span>$city<span>;
<span>15                 <span>$header = <span>array<span>(
<span>16                     'apikey: 6512ad3a465e3a9e3d0d1da56639626c',
<span>17 <span>                );
<span>18                 curl_setopt(<span>$ch, CURLOPT_HTTPHEADER  , <span>$header<span>);
<span>19                 curl_setopt(<span>$ch, CURLOPT_RETURNTRANSFER, 1<span>);
<span>20                 curl_setopt(<span>$ch , CURLOPT_URL , <span>$url<span>);
<span>21                 <span>$res = curl_exec(<span>$ch<span>);
<span>22                 <span>$data = json_decode(<span>$res,<span>true<span>);
<span>23                 <span>$cityname=<span>$data['retData']['city'<span>];
<span>24                 <span>$citydate=<span>$data['retData']['today']['date'<span>];
<span>25                 <span>$cityweek=<span>$data['retData']['today']['week'<span>];
<span>26                 <span>$citytemp=<span>$data['retData']['today']['curTemp'<span>];
<span>27                 <span>$citypm=<span>$data['retData']['today']['aqi'<span>];
<span>28                 <span>$cityhightemp=<span>$data['retData']['today']['hightemp'<span>];
<span>29                 <span>$citylowtemp=<span>$data['retData']['today']['lowtemp'<span>];
<span>30                 <span>$citytype=<span>$data['retData']['today']['type'<span>];
<span>31                 <span>$cityfengli=<span>$data['retData']['today']['fengli'<span>];
<span>32                 <span>$cityfengxiang=<span>$data['retData']['today']['fengxiang'<span>];
<span>33                 <span>$cityforecast=<span>$data['retData']['forecast'<span>];
<span>34 
<span>35                 <span>$out="今日温度:".<span>$citylowtemp."~".<span>$cityhightemp."\n\r"."当前温度:".<span>$citytemp."\n\r"."天气情况:".<span>$citytype."\n\r"."PM2.5值:".<span>$citypm."\n\r风向风力:".<span>$cityfengxiang." ".<span>$cityfengli<span>;
<span>36                 <span>$dateArray[] = <span>array("Title"=><span>$cityname."\n\r".<span>$citydate." ".<span>$cityweek,"Description"=>"","Picurl"=>"","Url" =>""<span>);
<span>37                 <span>$dateArray[] = <span>array("Title"=><span>$out,"Description"=>"","Picurl"=>"","Url" =>""<span>);
<span>38                 <span>for(<span>$i=0;<span>$i<<span>count(<span>$cityforecast);<span>$i++<span>){
<span>39                     <span>$outstr="☀ ".<span>$cityforecast[<span>$i]["date"]." ".<span>$cityforecast[<span>$i]["week"]."\n\r气温:".<span>$cityforecast[<span>$i]["lowtemp"]."~".<span>$cityforecast[<span>$i]["hightemp"]."\n\r风力:".<span>$cityforecast[<span>$i]["fengxiang"]." ".<span>$cityforecast[<span>$i]["fengli"]."\n\r天气:".<span>$cityforecast[<span>$i]["type"<span>];
<span>40                     <span>$dateArray[] = <span>array("Title"=><span>$outstr,"Description"=>"","Picurl"=>"","Url" =>""<span>);
<span>41 <span>                }
<span>42                 <span>$resultStr = <span>$this->transmitNews(<span>$object, <span>$dateArray, <span>$funcFlag<span>);
<span>43 <span>            }
<span>44         }<span>else<span>{
<span>45             <span>//<span>echo '没有空格';
<span>46             if($keyword=="天气"){
47                 $dateArray = array();
48                 $dateArray[] = array("Title"=>"查询格式错误","Description"=>"","Picurl"=>"","Url" =>"");
49                 $dateArray[] = array("Title"=>"正确格式例:天气 北京","Description"=>"","Picurl"=>"","Url" =>"");
50                 $resultStr = $this->transmitNews($object, $dateArray, $funcFlag);
51             }
52         }
53         return $resultStr; 
54     }</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

查询格式:“天气 城市名”

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何使用PHP实现天气预报功能如何使用PHP实现天气预报功能Jun 27, 2023 pm 05:54 PM

PHP作为一款流行的后端编程语言,在Web开发领域广受欢迎。天气预报功能是一种常见的Web应用场景,基于PHP实现天气预报功能相对简单易懂。本文将介绍如何使用PHP实现天气预报功能。一、获取天气数据API要实现天气预报功能,首先需要获取天气数据。我们可以使用第三方天气API来获取实时、准确的天气数据。目前,国内主流的天气API供应商包括免费的“心知天气”和收

华为手机天气预报怎么设置在桌面 详细讲解:手机添加桌面小组件教程华为手机天气预报怎么设置在桌面 详细讲解:手机添加桌面小组件教程Mar 02, 2024 pm 12:34 PM

自2021年12月开始华为&荣耀手机上线了万象桌面小组件的功能。为诸多用户手机桌面添加很多便捷功能、视觉优化的桌面控件等等;到今年8月两大商家平台也开放了运动健康数据、天气数据、音乐数据、系统数据等等,让用户在手机桌面的交互操作更加方便快捷还具备较多趣味性,让用户自己DIY创意组合自己的个性桌面。添加小组件后的手机桌面最近,许多华为手机用户反映他们对于如何在华为和荣耀手机上添加桌面小组件的操作方式不太清楚,抱怨这一过程过于复杂和繁琐。为了帮助大家解决这个问题,钱舒娴准备了详细的操作流程,希望能够

如何使用Java Websocket实现实时天气预报功能?如何使用Java Websocket实现实时天气预报功能?Dec 17, 2023 pm 05:10 PM

如何使用JavaWebSocket实现实时天气预报功能?随着互联网和移动设备的普及,实时天气预报功能成为了许多应用的必备功能之一。而使用JavaWebSocket技术能够方便快捷地实现实时通信,为用户提供最新的天气预报信息。本文将介绍如何使用JavaWebSocket实现实时天气预报功能,并提供具体的代码示例。环境准备在开始之前,需要确保你已经安装好以

谷歌推出“先进天气预报AI”MetNet-3,号称预测超传统物理模型谷歌推出“先进天气预报AI”MetNet-3,号称预测超传统物理模型Nov 03, 2023 pm 05:25 PM

IT之家11月3日消息,谷歌研究院与DeepMind合作开发了最新的天气模型MetNet-3,该模型以之前的MetNet和MetNet-2为基础,能够提前24小时,能够对全球天气情况进行高解析度预测,包括降水、表面温度、风速、风向和体感温度。IT之家发现,谷歌提到,MetNet-3模型已经在移动平台的“谷歌手机软件”天气预报中实装。MetNet-3模型可创建“平滑且高精度”的预测,空间解析度可达1至4公里,并以2分钟为分析区间,经实验证明,MetNet-3的预测能力超越传统物理天气预报模型,例如

谷歌推出“先进天气预报 AI”MetNet-3,号称预测结果超过传统物理模型谷歌推出“先进天气预报 AI”MetNet-3,号称预测结果超过传统物理模型Nov 04, 2023 am 08:22 AM

11月3日消息,谷歌研究院与DeepMind合作开发了最新的天气模型MetNet-3,该模型以之前的MetNet和MetNet-2为基础,能够提前24小时,能够对全球天气情况进行高解析度预测,包括降水、表面温度、风速、风向和体感温度。本站发现,谷歌提到,MetNet-3模型已经在移动平台的“谷歌手机软件”天气预报中实装。MetNet-3模型可以创建“平滑且高精度”的预测,空间分辨率可以达到1至4公里,并且以2分钟为分析区间。经过实验证明,MetNet-3的预测能力超越了传统的物理天气预报模型,例

桌面天气预报怎么恢复桌面天气预报怎么恢复Feb 24, 2024 pm 06:31 PM

桌面会有一个天气预报的功能,那么桌面天气预报怎么恢复呢?用户们需要在桌面里点击窗口工具,然后点击天气,选择一个天气组件就可以了。这篇桌面天气预报恢复方法介绍就能告诉大家具体的操作方法,下面就是详细介绍,赶紧看看吧!桌面天气预报怎么恢复答:在桌面的小组件里选择天气,然后添加到桌面。具体方法:ios方法:1、长按苹果屏幕,然后点击左上的+号。2、在里面搜索天气,打开这个应用。3、然后选择天气组件的样式,点击添加小组件。4、之后点击右上的完成就可以了。安卓方法:1、长按屏幕,点击窗口小工具。2、点击天

如何使用Python和百度地图API获取城市天气预报信息?如何使用Python和百度地图API获取城市天气预报信息?Jul 31, 2023 pm 02:46 PM

如何使用Python和百度地图API获取城市天气预报信息?导语:天气预报对我们的日常生活起着重要的指导作用。本文将介绍如何使用Python编程语言和百度地图API来获取城市的天气预报信息,从而帮助我们准确地了解天气情况。首先,我们需要注册一个百度开发者账号并创建一个应用。在创建应用后,百度将会提供给我们一对APIKey,用于使用百度地图API的权限认证。接

应用物理耦合图神经网络提升中国科学院大气物理研究所的降水预报技巧应用物理耦合图神经网络提升中国科学院大气物理研究所的降水预报技巧Jan 25, 2024 pm 03:42 PM

编辑|ScienceAI大模型时代,纯数据驱动的气象、气候模型效果逐渐追赶甚至赶超数值模式。然而,现有的气象气候大模型仍然存在一些问题。例如,模型中的物理一致性还不够高,这导致了对于复杂的天气气候现象如降水的预测能力受限。另外,辐散风的预报效果也不尽如人意。这些问题需要进一步的研究和改进,以提高模型的预测精度和可靠性。目前,将物理、大气动力与深度学习模型结合,是解决瓶颈问题的重要途径。近日,中国科学院大气物理研究所黄刚研究员团队基于地球系统数值模拟装置(寰)的数据和算力支持,从物理变量耦合关系角

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),