Mit der WeChat-Entwicklung können Sie schnell das Wetter in der Stadt überprüfen

PHPz
Freigeben: 2017-04-02 15:29:17
Original
1476 Leute haben es durchsucht

WeChatUm das Stadtwetter abzufragen, müssen Sie es zunächst finden Hier wird die API von Weather und der Apistore von Baidu verwendet. Sie können sich bei Baidu anmelden und die API verwenden Senden Sie über Ihr Mobiltelefon eine Anfrage zum Erhalt des Apikey. Folgen Sie dem Beispiel, um das Stadtwetter anzufordern (Sie können nach dem chinesischen Namen, Pinyin, der Stadtnummer usw. abfragen).

Sie können den Test vor Ort durchführen Jetzt, und fügen Sie es dann in Ihren eigenen Domain-Namensraum ein, nachdem die Anfrage abgeschlossen ist.

Beispiel für ein Testskript: (Beachten Sie, dass der APIKEY von Ihnen selbst ausgefüllt wird)

Wenn Sie Ihren eigenen APIKEY ausfüllen, sollten Sie in der Lage sein, das gewünschte Wetter zu erhalten:
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;
Nach dem Login kopieren

Wenn normale Daten zurückgegeben werden können, können diese in Ihrem Domain-Namensraum (der von der ausgefüllten URL) platziert werden Entwicklerzentrum auf der öffentlichen Plattform, die über die WeChat-

-Schnittstelle

usw. verfügt. Funktion)

Geben Sie nach Abschluss (vergessen Sie nicht, den APIKEY auszufüllen) das Wetter Shanghai ein in Ihrem Abonnementkonto, und Sie sollten in der Lage sein, das Wetter in Shanghai an diesem Tag zu überprüfen
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, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA);
  
  $fromUsername = $postObj->FromUserName; //请求消息的用户
  $toUsername = $postObj->ToUserName; //"我"的公众号id
  $keyword = trim($postObj->Content); //用户发送的消息内容
  $time = time(); //时间戳
  $msgtype = &#39;text&#39;; //消息类型:文本
  $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 == &#39;event&#39;){ //如果XML信息里消息类型为event
  if($postObj->Event == &#39;subscribe&#39;){ //如果是订阅事件
   $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, &#39;UTF-8&#39;);//获取要返回什么样的信息
 
  if($which== "翻译"){ //如果要进行翻译
  //调用有道翻译API进行翻译
 
  }elseif($which == "天气"){
  $wea = $which;
  $city = str_replace($wea, "", $keyword);
 
  $ch = curl_init();
  $url = &#39;http://apis.baidu.com/apistore/weatherservice/cityname?cityname=&#39; . $city;
  $header = array(&#39;apikey: &#39;); //此处的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[&#39;city&#39;] . "\n";
   $contentStr .= "日期:" . $v[&#39;date&#39;] . "\n";
   $contentStr .= "天气:" . $v[&#39;weather&#39;] ."\n";
   $contentStr .= "平均气温:" . $v[&#39;temp&#39;] . "℃\n";
   $contentStr .= "最低气温:" . $v[&#39;l_tmp&#39;] ."℃\n";
   $contentStr .= "最高气温:" . $v[&#39;h_tmp&#39;] . "℃\n";
   $contentStr .= "风力:" . $v[&#39;WS&#39;] . "\n";
   $contentStr .= "风向:" . $v[&#39;WD&#39;] . "\n";
   $contentStr .= "日出时间:" . $v[&#39;sunrise&#39;] . "\n";
   $contentStr .= "日落时间:" . $v[&#39;sunset&#39;] . "\n";
   $contentStr .= "经度:" . $v[&#39;longitude&#39;] . "\n";
   $contentStr .= "纬度:" . $v[&#39;latitude&#39;];
   }
  }
  $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 dem Login kopieren
.

Das obige ist der detaillierte Inhalt vonMit der WeChat-Entwicklung können Sie schnell das Wetter in der Stadt überprüfen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage