当前位置:首页 > 渗透破解 > 正文内容

微信公众平台开发天气(微信公众号天气预报)

hacker2年前 (2022-07-16)渗透破解109

本文目录一览:

微信公众平台如何在开发模式下设置天气预报自动回复

微信公众平台在开发模式下设置天气预报自动回复 *** :

1、天气接口的API地址, *** 上面有很多,下面介绍用百度地图API上面的一个产品,来实现天气查询功能。首先需要注册一个百度账号,然后登陆百度的LBS开发平台,找到车联网API,地址如下:

2、进入车联网页面后,可以看到很多API接口

3、接下来,点击“获取密钥”,复制保存好自己的访问密钥,访问密钥即ak.

4、然后点击“接口说明”,再选中“天气查询”

5、即可看到接口说明文档。通过文档,可以了解到,它可以根据用户发过来的关键词和经纬度来返回天气预报。所以当地的微信可以设置当用户发送关键词包括城市的时候,直接回复天气预报。

6、更加地理位置和关键词来返回查询今天天气的代码如下:

case "location";

$weatherurl="{$longitude},{$latitude}ak=1a3cde429f38434f1811a75e1a90310c";

$apistr=file_get_contents($weatherurl);

$apiobj=simplexml_load_string($apistr);

$placeobj=$apiobj-currentCity;//读取城市

$todayobj=$apiobj-results-result[0]-date;//读取星期

$weatherobj=$apiobj-results-result[0]-weather;//读取天气

$windobj=$apiobj-results-result[0]-wind;//读取风力

$temobj=$apiobj-results-result[0]-temperature;//读取温度

$contentStr = "{$placeobj}{$todayobj}天气{$weatherobj},风力{$windobj},温度{$temobj}";

break;

case "text";

$weatherurl="{$keyword}ak=1a3cde429f38434f1811a75e1a90310c";

$apistr=file_get_contents($weatherurl);

$apiobj=simplexml_load_string($apistr);

$placeobj=$apiobj-currentCity;//读取城市

$todayobj=$apiobj-results-result[0]-date;//读取星期

$weatherobj=$apiobj-results-result[0]-weather;//读取天气

$windobj=$apiobj-results-result[0]-wind;//读取风力

$temobj=$apiobj-results-result[0]-temperature;//读取温度

$contentStr = "{$placeobj}{$todayobj}天气{$weatherobj},风力{$windobj},温度{$temobj}";

 break;

7、在手机上面登录微信后,回复地理位置和城市信息实现的结果如下:

公共平台没开发怎样可以有天气预报

在这篇教程中,我们将介绍如何在微信公众平台上开发天气预报功能。我们将使用中国天气网的气象数据接口来获取天气信息。

这篇教程将介绍以下内容:

获取中国天气网的气象数据

在微信公众平台中回复天气

一、中国天气网

中国天气网提供了丰富的气象数据接口。下面我们介绍主要的几个:

国家根节点接口:

该接口以XML格式列出所有的省(自治区、直辖市)的中文名称(quName)和拼音名称(pyName)及省会城市的天气信息,其中广东的数据如下:

city quName="广东" pyName="guangdong" cityname="广州" state1="2" state2="7" stateDetailed="阴转小雨" tem1="8" tem2="15" windState="微风"/

该接口的主要功能是通过它获取省级节点的拼音名称。以广东为例:其pyName是“Guangdong”。

省级节点接口(以广东为例):

该接口以XML格式列出当前省下辖所有市的中文名称(quName)、拼音名称(pyName)、中心坐标、天气信息以及城市编码。其中深圳的数据如下所示:

city cityX="409" cityY="257" cityname="深圳" centername="深圳" fontColor="FFFFFF" pyName="shenzhen" state1="1" state2="1" stateDetailed="多云" tem1="12" tem2="18" temNow="12" windState="微风" windDir="东北风" windPower="1级" humidity="74%" time="21:15" url="101280601"/

在这个接口中主要获取城市名称及相应的城市编码。例如,深圳的城市编码为:101280601。可以编写程序将全国城市拓扑结构采集下来。也可以使用方倍工作室已经采集好的,点击这里下载。

实时天气数据(以深圳为例):

该接口以 *** ON格式列出当前城市的实时天气状况。如下所示:

{

"weatherinfo": {

"city": "深圳",

"cityid": "101280601",

"temp": "12",

"WD": "东北风",

"WS": "1级",

"SD": "75%",

"WSE": "1",

"time": "21:20",

"isRadar": "1",

"Radar": "JC_RADAR_AZ9755_JB"

}

}

实时天气数据参数说明下所示:

六日天气数据(以深圳为例):

该接口以 *** ON格式列出当前城市的六日天气状况。如下所示:

{

"weatherinfo": {

"city": "深圳",

"city_en": "shenzhen",

"date_y": "2014年2月15日",

"date": "",

"week": "星期六",

"fchh": "18",

"cityid": "101280601",

"temp1": "12℃~18℃",

"temp2": "16℃~21℃",

"temp3": "17℃~23℃",

"temp4": "11℃~18℃",

"temp5": "10℃~15℃",

"temp6": "12℃~17℃",

"tempF1": "53.6℉~64.4℉",

"tempF2": "60.8℉~69.8℉",

"tempF3": "62.6℉~73.4℉",

"tempF4": "51.8℉~64.4℉",

"tempF5": "50℉~59℉",

"tempF6": "53.6℉~62.6℉",

"weather1": "多云",

"weather2": "阴",

"weather3": "多云",

"weather4": "中雨",

"weather5": "多云",

"weather6": "阴",

"img1": "1",

"img2": "99",

"img3": "2",

"img4": "99",

"img5": "1",

"img6": "99",

"img7": "8",

"img8": "99",

"img9": "1",

"img10": "99",

"img11": "2",

"img12": "99",

"img_single": "1",

"img_title1": "多云",

"img_title2": "多云",

"img_title3": "阴",

"img_title4": "阴",

"img_title5": "多云",

"img_title6": "多云",

"img_title7": "中雨",

"img_title8": "中雨",

"img_title9": "多云",

"img_title10": "多云",

"img_title11": "阴",

"img_title12": "阴",

"img_title_single": "多云",

"wind1": "微风",

"wind2": "微风",

"wind3": "微风",

"wind4": "东北风3-4级",

"wind5": "微风",

"wind6": "微风",

"fx1": "微风",

"fx2": "微风",

"fl1": "小于3级",

"fl2": "小于3级",

"fl3": "小于3级",

"fl4": "3-4级",

"fl5": "小于3级",

"fl6": "小于3级",

"index": "较舒适",

"index_d": "建议着薄外套、开衫牛仔衫裤等服装。年老体弱者应适当添加衣物,宜着夹克衫、薄毛衣等。",

"index48": "较舒适",

"index48_d": "建议着薄外套、开衫牛仔衫裤等服装。年老体弱者应适当添加衣物,宜着夹克衫、薄毛衣等。",

"index_uv": "最弱",

"index48_uv": "最弱",

"index_xc": "适宜",

"index_tr": "适宜",

"index_co": "舒适",

"st1": "19",

"st2": "13",

"st3": "23",

"st4": "16",

"st5": "24",

"st6": "18",

"index_cl": "适宜",

"index_ls": "适宜",

"index_ag": "不易发"

}

}

未来六日天气数据主要参数说明如下表所示:

以上接口是我们做天气预报功能将使用到的接口。

二、微信公众平台开发

1. 需要将城市编码对照表导入到数据库中,以下是SAE导入后截图

2. 将城市名转为城市代码的 *** ,这将在用户发送城市名的时候调用

1 function fromNameToCode($name)

2 {

3 $mysql_host = SAE_MYSQL_HOST_M;

4 $mysql_host_s = SAE_MYSQL_HOST_S;

5 $mysql_port = SAE_MYSQL_PORT;

6 $mysql_user = SAE_MYSQL_USER;

7 $mysql_password = SAE_MYSQL_PASS;

8 $mysql_database = SAE_MYSQL_DB;

9

10 $mysql_table = "weather";

11 $mysql_state = "SELECT * FROM ".$mysql_table." WHERE `cityName` = '".$name."'";

12

13 $con = mysql_connect($mysql_host.':'.$mysql_port, $mysql_user, $mysql_password, true);

14 if (!$con){

15 die('Could not connect: ' . mysql_error());

16 }

17 mysql_query("SET NAMES 'UTF8'");

18 mysql_select_db($mysql_database, $con);

19 $result = mysql_query($mysql_state);

20 $cityCode = "";

21 while($row = mysql_fetch_array($result))

22 {

23 $cityCode = $row['cityCode'];

24 break;

25 }

26 mysql_close($con);

27 return $cityCode;

28 }

3. 编写接口调用函数,用于向天气网发送cURL请求,获取数据

1 function httpRequest($url)

2 {

3 $ch = curl_init();

4 curl_setopt($ch, CURLOPT_URL, $url);

5 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

6 $output = curl_exec($ch);

7 curl_close($ch);

8 if ($output === FALSE){

9 return "cURL Error: ". curl_error($ch);

10 }

11 return $output;

12 }

4. 编写获取天气数据的函数,这里获取实时天气和未来3日天气,并将返回结果封装成图文信息的数组

1 function getWeatherInfo($cityName)

2 {

3 $cityCode = fromNameToCode($cityName);

4

5 if ($cityCode == "")

6 {

7 return "错误的城市名或者此城市不在数据库中!";

8 }

9

10 //获取实时天气

11 $url = "".$cityCode.".html";

12 $output = httpRequest($url);

13 $weather = json_decode($output, true);

14 $info = $weather['weatherinfo'];

15

16 $weatherArray = array();

17 $weatherArray[] = array("Title"=$info['city']."天气预报", "Description"="", "PicUrl"="", "Url" ="");

18 if ((int)$cityCode 101340000){

19 $result = "实况 温度:".$info['temp']."℃ 湿度:".$info['SD']." 风速:".$info['WD'].$info['WSE']."级";

20 $weatherArray[] = array("Title"=str_replace("%", "﹪", $result), "Description"="", "PicUrl"="", "Url" ="");

21 }

22

23 //获取六日天气

24 $url = "".$cityCode.".html";

25 $output = httpRequest($url);

26 $weather = json_decode($output, true);

27 $info = $weather['weatherinfo'];

28

29 if (!empty($info['index_d'])){

30 $weatherArray[] = array("Title" =$info['index_d'], "Description" ="", "PicUrl" ="", "Url" ="");

31 }

32

33 $weekArray = array("日","一","二","三","四","五","六");

34 $maxlength = 3;

35 for ($i = 1; $i = $maxlength; $i++) {

36 $offset = strtotime("+".($i-1)." day");

37 $subTitle = date("m月d日",$offset)." 周".$weekArray[date('w',$offset)]." ".$info['temp'.$i]." ".$info['weather'.$i]." ".$info['wind'.$i];

38 $weatherArray[] = array("Title" =$subTitle, "Description" ="", "PicUrl" =""."d".sprintf("%02u",$info['img'.(($i *2)-1)]).".jpg", "Url" ="");

39 }

40

41 return $weatherArray;

42 }

5. 在微信公众平台接口函数中处理收到的文本消息时,文本将为城市名,直接调用获取天气的函数

1 /*

2 方倍工作室

3 CopyRight 2013 All Rights Reserved

4 */

5

6 define("TOKEN", "weixin");

7

8 $wechatObj = new wechatCallbackapiTest();

9 if (!isset($_GET['echostr'])) {

10 $wechatObj-responseMsg();

11 }else{

12 $wechatObj-valid();

13 }

14

15 class wechatCallbackapiTest

16 {

17 public function valid()

18 {

19 $echoStr = $_GET["echostr"];

20 if($this-checkSignature()){

21 echo $echoStr;

22 exit;

23 }

24 }

25

26 private function checkSignature()

27 {

28 $signature = $_GET["signature"];

29 $timestamp = $_GET["timestamp"];

30 $nonce = $_GET["nonce"];

31 $token = TOKEN;

32 $tmpArr = array($token, $timestamp, $nonce);

33 sort($tmpArr);

34 $tmpStr = implode($tmpArr);

35 $tmpStr = sha1($tmpStr);

36

37 if($tmpStr == $signature){

38 return true;

39 }else{

40 return false;

41 }

42 }

43

44 public function responseMsg()

45 {

46 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

47 if (!empty($postStr)){

48 $this-logger("R ".$postStr);

49 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

50 $RX_TYPE = trim($postObj-MsgType);

51

52 switch ($RX_TYPE)

53 {

54 case "event":

55 $result = $this-receiveEvent($postObj);

56 break;

57 case "text":

58 $result = $this-receiveText($postObj);

59 break;

60 }

61 $this-logger("T ".$result);

62 echo $result;

63 }else {

64 echo "";

65 exit;

66 }

67 }

68

69 private function receiveEvent($object)

70 {

71 $content = "";

72 switch ($object-Event)

73 {

74 case "subscribe":

75 $content = "欢迎关注方倍工作室 ";

76 break;

77 case "unsubscribe":

78 $content = "取消关注";

79 break;

80 }

81 $result = $this-tran *** itText($object, $content);

82 return $result;

83 }

84

85 private function receiveText($object)

86 {

87 $keyword = trim($object-Content);

88

89 include("weather.php");

90 $content = getWeatherInfo($keyword);

微信公众平台如何在编辑模式下设置天气预报自动回复?而且想知道编辑模式下还有哪些特殊的功能。

编辑模式下是不可以的。除非你手动维护

天气信息。

是这样的

编辑模式里的内容

都是人工手动维护的,是静态的。

而开发模式里的内容

都是程序自动生成的,是动态获取的。

所以类似天气信息

一般都是使用程序获取最新的天气

的。

望采纳

请教如何在微信公众号上开发天气预报功能

天气预报属于实用工具 在很多第三方开发后台上都有 直接对接就可以使用了

扫描二维码推送至手机访问。

版权声明:本文由黑客技术发布,如需转载请注明出处。

本文链接:http://w-123.com/203662.html

“微信公众平台开发天气(微信公众号天气预报)” 的相关文章

DNS 曝高危漏洞,影响数百万物联网设备

近日,Nozomi Networks发出警告,uClibc库的域名系统 (DNS) 组件中存在一个高危漏洞,编号为CVE-2022-05-02,该漏洞将影响所有版本uClibc-ng库的域名系统(DNS),因此,数百万台使用uClibc库的物联网设备都也将受到影响。 资料显示,uClibc库专门为...

小心:勒索软件 Magniber 伪装成 Windows 更新传播

在最新活动中,恶意软件 Magniber 利用虚假的 Windows 10 更新实现传播。这款恶意软件非常善于紧跟最新时事进行传播,在 2021 年使用 PrintNightmare 漏洞来感染受害者;在 2022 年 1 月,它再次通过 Edge 和 Chrome 浏览器进行传播。 援引科...

加拿大卡车司机抗议活动资助网站被黑 大量敏感信息泄露

作为加拿大“自由车队”卡车司机抗议活动的首选筹款平台,GiveSendGo 刚因遭遇黑客攻击而下线。有关捐赠者的泄露信息,也正在网络上传播。Daily Dot 记者 Mikael Thalen 指出:周日晚间,该网站域名被重定向到了 GiveSendGone[.]wtf,并且不断重播《冰雪奇缘》的一...

全球 76% 的公司在过去一年中曾遭遇因技术问题导致的业务中断

Atlas VPN的新研究显示,全球76%的公司在过去一年中遭遇过服务停机。原因包括系统崩溃、人为错误和网络攻击是造成停机的主要原因。此外,许多IT经理对越来越多的政治驱动的网络攻击感到担忧。 系统崩溃被认为是公司停机的首要原因,52%的人不得不处理这个问题。42.3%的IT经理认为人为错误是导致公...

微软禁用 MSIX AppX 安装程序以使用户免遭 Emotet、BazarLoader 类威胁

微软今天正式宣布,它已经禁用了MSIX应用安装程序协议以防止恶意攻击。该协议允许用户直接从网络服务器上安装各种应用程序,而不需要先将其下载到本地存储。当时的想法是,这种方法将为用户节省空间,因为不需要下载整个MSIX包。 然而,这种Windows应用程序安装包后来被发现用来分发恶意的PDF文件,如...

因 UpdraftPlus 插件存在漏洞 超 200 万个 WordPress 网站已强制更新

UpdraftPlus 是一款可靠、易用的 WordPress 备份/还原和克隆插件。上周由于该插件存在严重漏洞,超过 200 万个 WordPress 网站得到了强制更新。该漏洞可能让未经授权的用户下载 WordPress 网站的备份。 JetPack 的开发人员在对 UpdraftPlus...

评论列表

纵遇玖橘
2年前 (2022-07-16)

y": "2014年2月15日", "date": "", "week": "星期六", "fchh": "18", "cityid": "101280601", "temp1":

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。