千家信息网

PHP微信开发之怎么根据用户回复关键词\位置返回附近信息

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,小编给大家分享一下PHP微信开发之怎么根据用户回复关键词\位置返回附近信息,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用
千家信息网最后更新 2025年01月18日PHP微信开发之怎么根据用户回复关键词\位置返回附近信息

小编给大家分享一下PHP微信开发之怎么根据用户回复关键词\位置返回附近信息,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

用户关注了微信公众号之后,可以回复用户的地理位置(腾讯地图)给公众号,提取位置信息的纬度和经度,转化为百度的纬度和经度。然后根据纬度和经度,调用百度地图的API,返回附近半径2KM以内的"饭店""旅馆"(可以自定义)等信息。调用百度的API时,需要获取apiKEY,如果没有,请到百度开发者中心去注册和申请。

首先,用一组纬度和经度来测试接口返回的数据:

";// print_r($res);// echo "
"; //提取所需的信息foreach($res['results'] as $k=>$v){ $arr[$k]['name'] = $v['name']; $arr[$k]['address'] = $v['address']; $arr[$k]['img_url'] = 'http://misakaqnxt-public.stor.sinaapp.com/click.png'; $arr[$k]['detail_url'] = isset($v['detail_info']['detail_url'])?$v['detail_info']['detail_url']:'';} echo "
"; print_r($arr); echo "
";

返回的数据

如果你填写了正确的apikey,那么应该返回了上面的数据了。接下来:在微信的接口平台代码(放在你的公网域名空间里的PHP脚本)里,判断消息类型,并获取纬度和经度,调用百度地图API,拼接XML返回即可。由于百度API返回的数据里,没有"饭店"的缩略图,所以我就用了自己网站的一张图。
为了能够让用户自定义查找周围的"饭店"
或"旅馆"等信息,可以先让用户回复"寻找XX",然后提取出XX,放到session里,等用户再回复地理位置时取出session。但我设置了session之后,没能取出session。所以我这里用新浪云的KVDB服务,当然你也可以用memcache或者Redis等缓存方式。

$which = mb_substr($keyword, 0, 2, 'UTF-8');

elseif($which == "寻找"){        $find = str_replace($which, "", $keyword);        //调用新浪云的KVDB服务        $kv = new SaeKV();        $kv->init();        $kv->set('find', $find);        $contentStr = "选择表情旁边的'+',发送位置,即可查找你要找的地方";        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);        echo $resultStr;        exit();      }
 elseif($postObj->MsgType == 'location'){          /**           * 如果是收到了地理位置消息,则返回附近的饭店           */          //--------第一步:转换经纬度-------          //参考链接:http://www.php.cn/          $Location_X = $postObj->Location_X;          $Location_Y = $postObj->Location_Y;                    $url = "http://api.map.baidu.com/geoconv/v1/?coords=$Location_X,$Location_Y&from=3&to=5&ak=这里填写你的apikey";                    $res = file_get_contents($url);          $res = json_decode($res, true);          //用户发送腾讯的soso地图位置信息经过转换之后,得到百度地图的经纬度          $x = $res['result'][0]['x'];          $y = $res['result'][0]['y'];          //---------第二步:根据经纬度和关键词获得附近的信息----------          $kv = new SaeKV();          // 初始化KVClient对象          $kv->init();                    $url = "http://api.map.baidu.com/place/v2/search?ak=这里填写你的apikey&output=json&query=" . urlencode($kv->get('find')) . "&page_size=10&page_num=0&scope=2&location=$x,$y&radius=2000";          $res = file_get_contents($url);          $res = json_decode($res, true);                    //提取信息          foreach($res['results'] as $k=>$v){            $arr[$k]['name'] = $v['name'];            $arr[$k]['address'] = $v['address'];            $arr[$k]['img_url'] = 'http://misakaqnxt-public.stor.sinaapp.com/click.png';            $arr[$k]['detail_url'] = isset($v['detail_info']['detail_url'])?$v['detail_info']['detail_url']:'';          }          //--------第三步:拼接XML字符串--------          $head = "                              %s                    10          ";          $items = "";          foreach($arr as $v){            $items .= "            <![CDATA[" . $v['name'] .":". $v['address'] . "]]>                                                ";          }          $foot = "";          $res = $head . $items . $foot;                    $resultStr = sprintf($res, $fromUsername, $toUsername, $time);          echo $resultStr;          exit();}

以上是"PHP微信开发之怎么根据用户回复关键词\位置返回附近信息"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

信息 位置 用户 地图 经纬 经纬度 关键 纬度 经度 饭店 关键词 数据 参考 开发 地理 地理位置 篇文章 链接 腾讯 公众 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网的科技有限公司招聘 数据库mysql面试问题 中科院院士谈论中国网络安全 金蝶服务器哪个质量好 重用软件开发分析记录表 无法验证服务器身份一直跳出来 临沂哪里有学网络技术的培训机构 网络安全防护软件系统有哪些 网络安全家园联系栏 软件开发文档背景图情侣 王者qq区所有服务器 长沙金盾网络安全公司 学校网络安全防范与宣传 苏州智能化软件开发销售 国内ipv6dns最快的服务器 计算机网络安全展示ppt 网络安全评估工作情况 c 数据库界面生成器 广州大学网络安全研究生校区 宣城医院软件开发多少钱 数据库怎么保存视频 服务器设置一直重启 医院信息科网络安全制度 服务器微信商户ai安全证书 北京工业网络安全有限公司 长沙金盾网络安全公司 二维码怎么关联到数据库 数据库死锁如何解决 网络安全网络技术前景 浪潮服务器进安全模式
0