365体育备用网址报道6.6.1个性化欢迎语_365体育备用网址官网资讯

很多公众号在用户关切的时刻,会显示出用户的昵称、头像或其余信息。我们以关切的时刻向用户提供当地天气预告为例,介绍如何开拓个性化欢迎语的功能。
用户关切时会向开拓者接口上报关切事情,我们提取用户的OpenID,然后依据OpenID查询用户的基本信息,再依据用户基本信息中的城市名称查询该城市的天气预告。
猎取天气预告的方法在第四章已经介绍,这里就不再反复。
猎取用户基本信息的程序封装到SDK的代码如下:

 1 PHP" style="box-sizing: inherit; margin: 0px; padding: 0px;"><?php
 2 $access_token = "QfUKtidNK0z-WA9C38JIncULipiunLfKpic1rmcnPOCs4UuZ7ek7PvjM5mLXnkJH7d5u2vX2q7UY9wurrJRjFrnIi4O6BkDwSmfE3wv1-ToSrEXGzwOpzgc8SSw74tNHDAUbACAWTN";
 3 
 4 $openid = "oiPuduGV7gJ_MOSfAWpVmhhgXh-U";
 5 $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";
 6 $output = https_request($url);
 7 var_dump($output);
 8 
 9 function https_request($url, $data = null)
10 {
11     $curl = curl_init();
12     curl_setopt($curl, CURLOPT_URL, $url);
13     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
14     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
15     if (!empty($data)){
16         curl_setopt($curl, CURLOPT_POST, 1);
17         curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
18     }
19     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
20     $output = curl_exec($curl);
21     curl_close($curl);
22     return $output;
23 }
24 ?>

在接收消息中,处置流程如下所示:

 1 //接收事情消息
 2 private function receiveEvent($object)
 3 {    
 4     $openid = strval($object->FromUserName);
 5     $content = "";
 6     switch ($object->Event)
 7     {
 8         case "subscribe":
 9             require_once('weixin.class.php');
10             $weixin = new class_weixin();
11             $info = $weixin->get_user_info($openid);
12             $municipalities = array("北京", "上海", "天津", "重庆", "香港", "澳门"); //四市二区 市名为区地区,这里用省名代替市名
13             if (in_array($info['province'], $municipalities)){
14                 $info['city'] = $info['province'];
15             }
16             $content = "欢迎关切,".$info['nickname'];
17             if ($info['country'] == "365体育备用网址"){
18                 require_once('weather.php');
19                 $weatherInfo = getWeatherInfo($info['city']);
20                 $content .= "\r\n您来自 ".$info['city'].",当前天气如下\r\n".$weatherInfo[1]["Title"];
21             }
22             break;
23         default:
24             $content = "receive a new event: ".$object->Event;
25             break;
26     }
27     if(is_array($content)){
28         $result = $this->transmitNews($object, $content);
29     }else{
30         $result = $this->transmitText($object, $content);
31     }
32     return $result;
33 }

上述代码解读如下:
第4行:提取用户的OpenID。
第5行:初始化回复内容。
第6行~第8行:检测当前事情是否为关切事情,并进入相应事情处置流程。
第9行~第11行:包含类文件;声明一个新的类对象;查询用户基本信息。
第12行~第15行:这里是一个数据处置流程,当用户在“北京”, “上海”,“天津”, “重庆”,“香港”,“澳门”这些城市的时刻,用户信息中省名为城市名,市名为区名。比如一个在北京石景山区的用户,他的基本信息中省名为“北京”、市名为“石景山”。这里为了统一,将用户的省名设置成市名。
第16行:将用户的昵称放入欢迎语中。
第17行~第21行:如果用户信息国名为“365体育备用网址”,则查询其所在城市的天气预告信息并添加到欢迎语中。
第27行~第32行:主动推断当前$content是否为数组,并调用不同的格式回复给用户。
一个查询胜利的结果如图6-1所示:

图6-1个性化欢迎语效果

------分隔线----------------------------

您可能感兴趣的文章:


公布评论 (81人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁公布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换永利娱乐城线上开户
最新评论