在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息。其中,某些事件推送在发生后,是允许开发者回复用户的,某些则不允许。
- //回复事件
- private function _doEvent($postObj){
- switch($postObj->Event){
- case 'subscribe': //关注
- $str = "终于等到你!\n这是启军的测试公众号!\n\n你可以回复'图文','图片','语音','单图文','多图文','音乐'或者直接发送你的地理位置~\n\n你还可以在这里闲聊哦^_^试试吧!";
- $this->_replayText($postObj,$str);
- break;
- case 'LOCATION':
- {
- $latitude = $postObj->Latitude; //纬度
- $longitude = $postObj->Longitude; //经度
- $contentStr = "您的当前所在的\n纬度:{$latitude}\n纬度:{$longitude}\n位置是:{$result->formatted_address}";
- $this->_replayText($postObj,$contentStr);
- }
- break;
- case 'CLICK':
- switch($postObj->EventKey){
- case 'TODAY_MUSIC':
- $this->_doMusic($postObj);
- break;
- case 'TALK':
- $this->_doNews($postObj);
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- }
当关注和上报地理位置时会触发相应的事件。