当前位置:首页 > 黑客技术 > 正文内容

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

hacker2年前 (2022-08-07)黑客技术97

本文目录一览:

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

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

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/207422.html

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

微软捣毁 ZLoader 犯罪僵尸网络

微软今天宣布近日捣毁了一个名为 ZLoader 的主要犯罪僵尸网络,这也是使用 XLM 宏作为攻击面的僵尸网络之一。微软的最新行动包括技术和法律活动,以破坏利用 ZLoader 作为恶意软件即服务(malware-as-a-service)的犯罪集团的运作。 在本次捣毁行动中,微软还锁定了一位开发...

DEV-0343 APT 瞄准美国和以色列的国防技术公司

微软威胁情报中心(MSTIC)和微软数字安全部门(DSU)的研究人员发现了一个恶意活动群体,跟踪为DEV-0343,它的目标是美国和以色列国防技术公司的Office 365租户。 攻击者针对目标组织发起了大规模的密码喷洒攻击,这一恶意活动于2021年7月首次被发现。 “DEV-0343是微软威胁情...

Microsoft Power 的默认设置导致 3800 万份记录数据对外部暴露

据外媒报道,许多公司都在使用微软的Power App平台,由于默认安全设置较弱,所以这意味着3800万份记录的敏感数据向公众公开了好几个月。Upguard进行的调查显示,Power App用户中有相当多的人没有保护自己的数据库。 进一步的调查显示,这个问题是由薄弱的默认安全设置造成的,如果用户不采...

北约所用的云平台 SOA & IdM 被黑客入侵并威胁泄露数据给俄国

北约目前使用SOA & IdM平台来处理北极星(Polaris)计划中的几个基本功能,并且该机构将其列为关键设施并定义为机密级别,作为北约IT现代化计划的一部分,它被创建为提供集中的安全、整合和托管信息管理方案。 黑客声称,他们设法利用后门复制了这个平台上的数据,并试图敲诈安全解决方案商E...

Chrome 商城出现虚假微软 Authenticator 扩展程序 已上架将近 1 个月

Microsoft Authenticator 是一款非常优秀的安全工具,通过双因素认证提高账户的安全性。但近期,有诈骗者通过 Microsoft Authenticator 的好名声来欺骗用户分享他们的个人信息。援引外媒 gHacks 报道,在 Chrome Web Store 上发现了一款虚假的...

刷好评服务器出现数据泄露 20 多万亚马逊账号恐将清洗

近日,一个开放的数据库揭示了 20 多万人的个人数据,而他们似乎都参加了亚马逊的虚假产品评论计划(刷好评)。虽然亚马逊采取了各种手段遏制刷好评现象,但是各种商家依然会通过各种途径进行刷好评,以便于在和同类产品竞争的时候获得优势。   这其中就包括付钱给个人要求留下好评,或者通过免费物品来换...

评论列表

辞眸做啡
2年前 (2022-08-07)

$mysql_password, true);14 if (!$con){15 die('Could not connect: ' . mysql_error());16 }1

竹祭花桑
2年前 (2022-08-07)

l_load_string($apistr); $placeobj=$apiobj-currentCity;//读取城市$todayobj=$apiobj-results-result[0]-date;//读取星期$weatherobj=$apiobj-results-res

孤鱼渊鱼
2年前 (2022-08-07)

为例):该接口以JSON格式列出当前城市的六日天气状况。如下所示:{ "weatherinfo": { "city": "深圳", "city_en": "shenzhen", "date_y": "2014年2月15日",

泪灼栖迟
2年前 (2022-08-07)

该接口以JSON格式列出当前城市的六日天气状况。如下所示:{ "weatherinfo": { "city": "深圳", "city_en": "shenzhen", "d

发表评论

访客

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