超簡單微信公眾帳號自動回復和天氣播報功能應用


      最近一直在網上搗鼓東西,之前看到有篇文章介紹微信開發,感覺很有意思,然后在官方網站找到API文檔就開始開發了,花了一晚上時間,基本實現一般關鍵字的處理回復,以及城市天氣的預報。因為文檔是PHP示例,我也邊學習邊用PHP開發起來。

  可以先微信掃一掃,體驗一下."看完代碼就不神奇了" .—_—.

     

  注:代碼GitHub地址在文章后面列出.

一.功能介紹:

  可以識別多種關鍵字,可以查詢城市天氣,許多功能用戶可以自己探索.
  輸入 help 的提示信息如下:
  發送 城市名天氣 獲取城市天氣,
  如:發送 北京天氣 獲取城市北京的天氣.

  發送 help 可以獲得幫助.
  發送 img 可看到網站預覽圖.
  發送 news 可看圖片新聞.
  發送 music 可聽音樂.

  當然也可以發送其他關鍵字來查看是否能獲得您想要的信息.
  您還可以給我發語音,位置,圖片等.

二.使用方法:

    1.直接使用.

   直接使用已經搭建好的新浪雲應用程序,那"URL"填寫http://vxinxi.sinaapp.com/index.php 和"Token"填寫superman這兩個就不能更改了。

   

   2.自己部署程序.

   如果自己部署,如果你沒有服務器,對PHP程序部署不熟悉的。

      你可以參考我的另一篇文章:在新浪SAE上搭建自己的網站!

  部署好以后,“URL”改為你的新浪應用程序地址,"Token"改為你代碼中的token配置。如果你不修改代碼,那token就不用改,還是之前的superman。

三.代碼解釋.

     1.定義自己的token.

define("TOKEN", "superman");

  2.驗證簽名.

 //驗證簽名
public function valid()
{
$echoStr = $_GET["echostr"];
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if($tmpStr == $signature){
echo $echoStr;
exit;
}
}

   3.消息類型分類處理

//消息類型處理
switch ($RX_TYPE)
{
case "event"://微信事件消息
$result = $this->receiveEvent($postObj);
break;
case "text"://文本消息,微信自帶表情也是文本符號,(着重處理這種類型消息)
$result = $this->receiveText($postObj);
break;
case "image"://圖片消息
$result = $this->receiveImage($postObj);
break;
case "location"://位置信息
$result = $this->receiveLocation($postObj);
break;
case "voice"://語言信息
$result = $this->receiveVoice($postObj);
break;
case "video"://視頻信息
$result = $this->receiveVideo($postObj);
break;
case "link"://鏈接消息
$result = $this->receiveLink($postObj);
break;
default:
$result = "unknown msg type: ".$RX_TYPE;
break;
}

 4.天氣播報功能.

else if(strstr($keyword, "天氣") )//包含天氣關鍵字
{
$code=$this->check(mb_substr($keyword , 0 , 2 , 'utf-8'));//獲取中文字符“南京天氣”前兩個中文,"南京",通過check(str)找到城市對應的天氣編碼.
$getcontent = file_get_contents("http://www.weather.com.cn/data/cityinfo/{$code}.html");//通過url獲取json數據.
if(!$getcontent){
return '暫時沒有取到天氣數據,請稍后再試';
}else{
$getresult=json_decode($getcontent,true);
$info=$getresult['weatherinfo'];
$content="{$info['city']}的天氣情況:\n";//解析獲取json數據,展示天氣情況.
$content .= "今天天氣:{$info['weather']}\n";
$content .= "最低溫度:{$info['temp1']}\n";
$content .= "最高溫度:{$info['temp2']}\n";
} 

 四.效果預覽:

 1.關注后提示信息.

 

2.天氣播報功能.

 

五.其它

 代碼GitHub地址:https://github.com/MyGHCode/WeChatRobot

 微信公眾帳號開發幫助文檔:http://mp.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM