Heim > Artikel > Backend-Entwicklung > PHP WeChat-Entwicklung, um Stadtwetter zu erhalten
In diesem Artikel wird hauptsächlich die einfache Implementierung der PHP-WeChat-Entwicklung zum Abfragen von Informationen zum Stadtwetter vorgestellt. Interessierte Freunde können sich darauf beziehen. Ich hoffe, es hilft allen.
PHP WeChat fragt das Wetter in der Stadt ab. Hier verwende ich die URL von Baidu: http://apistore.baidu.com /apiworks/servicedetail/112.html
Melden Sie sich bei Ihrem Baidu-Konto an und senden Sie mit Ihrem Mobiltelefon eine Anfrage zum Erhalt des Apikey. Mit apikey können Sie seinem Beispiel folgen und das Stadtwetter abfragen. (Sie können nach dem chinesischen Namen der Stadt, Pinyin, Stadtnummer usw. suchen.)
Sie können den Test jetzt vor Ort durchführen und nachdem die Anfrage abgeschlossen ist Fügen Sie es in das Skript Ihres eigenen Domain-Namensraums ein.
Beispiel für ein Testskript: (Beachten Sie, dass der Apikey von Ihnen selbst ausgefüllt wird)
header('Content-type:text/html;charset=UTF-8'); $ch = curl_init(); $url = 'http://apis.baidu.com/apistore/weatherservice/cityname?cityname=上海'; $header = array( 'apikey: ',//你的apikey ); // 添加apikey到header curl_setopt($ch, CURLOPT_HTTPHEADER , $header); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行HTTP请求 curl_setopt($ch , CURLOPT_URL , $url); $res = curl_exec($ch); $res = json_decode($res, true); echo "<pre class="brush:php;toolbar:false">"; print_r($res); echo ""; $contentStr = ""; foreach($res as $k=>$v){ if($k == "retData"){ $contentStr = "城市:" . $v['city'] . "\n"; $contentStr .= "日期:" . $v['date'] . "\n"; $contentStr .= "天气:" . $v['weather'] ."\n"; $contentStr .= "平均气温:" . $v['temp'] . "℃\n"; $contentStr .= "最低气温:" . $v['l_tmp'] ."℃\n"; $contentStr .= "最高气温:" . $v['h_tmp'] . "℃\n"; $contentStr .= "风力:" . $v['WS'] . "\n"; $contentStr .= "风向:" . $v['WD'] . "\n"; $contentStr .= "日出时间:" . $v['sunrise'] . "\n"; $contentStr .= "日落时间:" . $v['sunset'] . "\n"; $contentStr .= "经度:" . $v['longitude'] . "\n"; $contentStr .= "纬度:" . $v['latitude']; } } echo $contentStr;
Wenn Sie Ihren eigenen Apikey ausfüllen, sollten Sie in der Lage sein, das gewünschte Wetter zu erhalten:
Wenn normale Daten zurückgegeben werden können, können diese in Ihrem Domain-Namensraum platziert werden. (Die vom Entwicklerzentrum auf der öffentlichen Plattform ausgefüllte URL, die Funktionen wie die Verbindung zur WeChat-Schnittstelle hat)
Der folgende Code ist Teil von ResponseMsg:
public function responseMsg(){ <span style="white-space:pre"> </span>//get post data, May be due to the different environments $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //接收微信发来的XML数据 //extract post data if(!empty($postStr)){ //解析post来的XML为一个对象$postObj $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; //请求消息的用户 $toUsername = $postObj->ToUserName; //"我"的公众号id $keyword = trim($postObj->Content); //用户发送的消息内容 $time = time(); //时间戳 $msgtype = 'text'; //消息类型:文本 $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>"; if($postObj->MsgType == 'event'){ //如果XML信息里消息类型为event if($postObj->Event == 'subscribe'){ //如果是订阅事件 $contentStr = "欢迎订阅misaka去年夏天!\n更多精彩内容:http://blog.csdn.net/misakaqunianxiatian"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr); echo $resultStr; exit(); } } $which = mb_substr($keyword, 0, 2, 'UTF-8');//获取要返回什么样的信息 if($which== "翻译"){ //如果要进行翻译 //调用有道翻译API进行翻译 }elseif($which == "天气"){ $wea = $which; $city = str_replace($wea, "", $keyword); $ch = curl_init(); $url = 'http://apis.baidu.com/apistore/weatherservice/cityname?cityname=' . $city; $header = array('apikey: '); //此处的apikey使用自己申请的apikey,填在冒号之后 // 添加apikey到header curl_setopt($ch, CURLOPT_HTTPHEADER , $header); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行HTTP请求 curl_setopt($ch , CURLOPT_URL , $url); $res = curl_exec($ch); $res = json_decode($res, true); $contentStr = ""; foreach($res as $k=>$v){ if($k == "retData"){ $contentStr = "城市:" . $v['city'] . "\n"; $contentStr .= "日期:" . $v['date'] . "\n"; $contentStr .= "天气:" . $v['weather'] ."\n"; $contentStr .= "平均气温:" . $v['temp'] . "℃\n"; $contentStr .= "最低气温:" . $v['l_tmp'] ."℃\n"; $contentStr .= "最高气温:" . $v['h_tmp'] . "℃\n"; $contentStr .= "风力:" . $v['WS'] . "\n"; $contentStr .= "风向:" . $v['WD'] . "\n"; $contentStr .= "日出时间:" . $v['sunrise'] . "\n"; $contentStr .= "日落时间:" . $v['sunset'] . "\n"; $contentStr .= "经度:" . $v['longitude'] . "\n"; $contentStr .= "纬度:" . $v['latitude']; } } $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr); echo $resultStr; exit(); }else{ $contentStr = "输入翻译XXX可以进行翻译(=・ω・=)\n\n输入天气XX可以查询城市天气"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr); echo $resultStr; exit(); }
Nach Abschluss (Vergessen Sie nicht, apikey auszufüllen), geben Sie das Wetter Shanghai in Ihrem Abonnementkonto ein, und Sie sollten in der Lage sein, das Wetter in Shanghai an diesem Tag zu überprüfen.
Verwandte Empfehlungen:
Das öffentliche WeChat-Konto implementiert die Benutzerverwaltungsfunktion
Detaillierte Erläuterung des TP-Zugriffs auf die Zahlung über das öffentliche WeChat-Konto
Das obige ist der detaillierte Inhalt vonPHP WeChat-Entwicklung, um Stadtwetter zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!