日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php微信调用天气api,微信公众号接口开发--snoweek测试

發布時間:2024/3/13 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php微信调用天气api,微信公众号接口开发--snoweek测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注意:

前期的準備工作,我是參照的微信公眾平臺開發入門教程,我自己認為講解的還是很詳細的。

對于將要使用的天氣接口,我是在聚合數據里找的。

完整的代碼,可以前往我的github中,weixin_kaifa中download。

snoweek測試是一個基于php開發的微信公眾號,最初的目標是做成一個校園公眾號,可以完成以下功能 :

查詢學生成績:回復成績,會返回一個包含成績結果的鏈接

查詢城市天氣:回復天氣加城市,會返回當前天氣實況,相關天氣指數,未來幾天天氣預報

查詢當前時間:回復時間,則返回當前時間

發送一張圖片,識別后返回信息"你發送了一張圖片"

回復天氣,返回"請按提示輸入【天氣查詢】請輸入天氣加城市;如:天氣北京"

回復此公眾號還未實現的功能,則會返回"抱歉,還未提供此功能。

項目結構

index.php:微信接口文件

weather.php:天氣預報接口文件

grade_functions.php:學生查詢成績時,需要用到的相關函數

數據庫user表信息

user

CREATE TABLE `user` (

`user_id` mediumint(9) NOT NULL AUTO_INCREMENT,

`open_id` varchar(30) NOT NULL,

`student_id` varchar(12) NOT NULL,

PRIMARY KEY (`user_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

表user包含三列,user_id記錄用戶綁定學號的順序,同時用作主鍵;open_id記錄用戶在此公眾號下唯一標識;student_id記錄學生的學號。

grade_list

CREATE TABLE `grade_list` (

`grade_id` mediumint(9) NOT NULL,

`course` text NOT NULL,

`grade` int(11) NOT NULL,

`student_id` varchar(12) NOT NULL,

PRIMARY KEY (`grade_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

表grade_list包含四列,grade_id用于記錄成績的條數;course用于記錄課程名稱;

grade記錄成績;student_id記錄學生的學號。兩個表之間以student_id來連接。

功能詳細介紹

查詢學生成績

若用戶還未綁定學號,則返回提示信息:"對不起,你還沒有綁定學號,請輸入成績加學好;如:成績199434040086"。

check_user()函數

function check_user($submit_open_id){

$db=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);

$dbc=mysql_select_db(SAE_MYSQL_DB, $db);

$q="select student_id from user where open_id='$submit_open_id'";

$r=mysql_query($q);

if(mysql_num_rows($r)==1){

while($user=mysql_fetch_array($r)){

$result=$user['student_id'];

}

}else{

$result=0;

}

return $result;

}

此函數通過發送者帳號$open_id在user表中進行查詢。

若用戶已綁定學號,但grade_list表中沒有其學生信息,則返回提示信息:"你沒有成績記錄"。

若用戶已綁定學號,且grade_list表中有其成績信息,則返回一個鏈接,學生通過點擊該鏈接查詢自己的成績。

search_grade()

function search_grade($submit_student_id){

$db=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);

$dbc=mysql_select_db(SAE_MYSQL_DB, $db);

$q="select course,grade from grade_list where student_id='$submit_student_id'";

$r=mysql_query($q);

$grade_list=array();

if(mysql_num_rows($r)!=0){

while($g=mysql_fetch_array($r)){

$grade=array();

$grade['course']=$g['course'];

$grade['grade']=$g['grade'];

$grade_list[]=$grade;

}

$result=$grade_list;

}else{

$result=0;

}

return $result;

}

若用戶進行綁定學號行為,即輸入成績加學號

function insert_user($submit_open_id,$submit_student_id){

$db=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);

$dbc=mysql_select_db(SAE_MYSQL_DB, $db);

$q="insert into user(open_id,student_id)values('$submit_open_id','$submit_student_id')";

$r=mysql_query($q);

$rows=mysql_affected_rows();

return $rows;

}

用戶可以對學號進行解綁,即輸入“解綁即可”

function delete_user($submit_open_id){

$db=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);

$dbc=mysql_select_db(SAE_MYSQL_DB, $db);

$q="delete from user where open_id='$submit_open_id'";

$r=mysql_query($q);

$rows=mysql_affected_rows();

return $rows;

}

查詢城市天氣:回復天氣加城市,會返回當前天氣實況,相關天氣指數,未來幾天天氣預報

直接在聚合函數里找的天氣接口,weather.php里包含多種查詢天氣的函數。

調用天氣接口的代碼如下:

include 'weather.php'; //引入天氣請求類

$appkey = 'f67769dc51bfad1c06bb09312b873176'; //您申請的天氣查詢appkey

$weather = new weather($appkey);

$cityname=mb_substr($keyword,2,5,'utf-8');

$cityWeatherResult = $weather->getWeather($cityname);

if($cityWeatherResult['error_code'] == 0){

$data = $cityWeatherResult['result'];

$msgType = "text";

$contentStr = "==當前天氣實況==\n溫度:".$data['sk']['temp']."\n"."風向:".$data['sk']['wind_direction']."(".$data['sk']['wind_strength'].")"."\n濕度:".$data['sk']['humidity'];

$contentStr.="\n\n==相關天氣指數=======\n"."穿衣指數:".$data['today']['dressing_index']." , ".$data['today']['dressing_advice'];

$contentStr.="\n\n==未來幾天天氣預報==\n";

foreach($data['future'] as $wkey =>$f){

$contentStr.="日期:".$f['date']." ".$f['week']." ".$f['weather']." ".$f['temperature']."\n";

}

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}else{

$msgType = "text";

$contentStr = "【".$cityname."】".$cityWeatherResult['reason'].",請確保城市信息輸入有效";

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}

查詢當前時間

$msgType = "text";

$contentStr = date("Y-m-d H:i:s",time());

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

發送一張圖片

if($msgtype=="image"){

$msgType = "text";

$contentStr = "你發送了一張圖片";

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}

回復此公眾號還未實現的功能

$msgType = "text";

$contentStr = "【".$keyword."】抱歉,還未提供此功能。";

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

總結

以上是生活随笔為你收集整理的php微信调用天气api,微信公众号接口开发--snoweek测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。