


Le développement PHP WeChat renvoie des informations à proximité en fonction des mots-clés/emplacement de réponse de l'utilisateur
Mar 08, 2017 pm 03:55 PMCet article présente principalement en détail la mise en ?uvre simple du développement PHP WeChat pour renvoyer des informations à proximité en fonction de l'emplacement du mot-clé de réponse de l'utilisateur. Les amis intéressés peuvent s'y référer
Une fois que l'utilisateur a suivi le compte public WeChat, vous. peut répondre à la situation géographique de l'utilisateur (Tencent Map) au compte officiel, extraire la latitude et la longitude des informations de localisation et les convertir en latitude et longitude de Baidu. Ensuite, en fonction de la latitude et de la longitude, l'API de Baidu Map est appelée pour renvoyer des informations telles que ? restaurants ? et ? h?tels ? (peuvent être personnalisés) dans un rayon de 2 km. Lorsque vous appelez l'API de Baidu, vous devez obtenir apiKEY. Sinon, veuillez vous rendre au Baidu Developer Center pour vous inscrire et postuler.
Tout d'abord, testez les données renvoyées par l'interface avec un ensemble de latitude et de longitude?:
<?php /**根據一組經緯度查找附近2公里以內的關鍵字**/ header('Content-type:text/html;charset=utf-8'); //--------第一步:轉換經緯度---- //參考鏈接:http://www.miracleart.cn/ $Location_X = 23.134521; $Location_Y = 113.358803; $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); //用戶發(fā)送騰訊的soso地圖位置信息經過轉換之后,得到百度地圖的經緯度 $x = $res['result'][0]['x']; $y = $res['result'][0]['y']; //---------第二步:根據經緯度和關鍵詞獲得附近的信息---------- //參考鏈接:http://www.miracleart.cn/ $url = "http://api.map.baidu.com/place/v2/search?ak=這里填寫你的apikey&output=json&query=" . urlencode("飯店") . "&page_size=10&page_num=0&scope=2&location=$x,$y&radius=2000"; $res = file_get_contents($url); $res = json_decode($res, true); // echo "<pre class="brush:php;toolbar:false">"; // 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 "";
Données renvoyées
Si vous avez rempli la clé apikey correcte, les données ci-dessus doivent être renvoyées. Suivant?: Dans le code de la plate-forme d'interface WeChat (un script PHP placé dans votre espace de nom de domaine public), déterminez le type de message, obtenez la latitude et la longitude, appelez l'API Baidu Map et assemblez le XML pour le renvoyer. Puisqu'il n'y a pas d'image miniature du ? restaurant ? dans les données renvoyées par l'API Baidu, j'ai utilisé une image de mon propre site Web.
Afin de permettre aux utilisateurs de personnaliser la recherche de "restaurants" à proximité
ou "h?tels" et d'autres informations, les utilisateurs peuvent d'abord répondre "Recherche de XX", puis extraire XX, le mettre dans la session et attendre pour que l'utilisateur réponde avec l'emplacement géographique Supprimez la session lorsqu'il est en position. Mais après avoir configuré la session, je n'ai pas pu la supprimer. J'utilise donc ici le service KVDB de Sina Cloud. Bien s?r, vous pouvez également utiliser des méthodes de mise en cache telles que Memcache ou 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 = "選擇表情旁邊的'+',發(fā)送位置,即可查找你要找的地方"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr); echo $resultStr; exit(); }
elseif($postObj->MsgType == 'location'){ /** * 如果是收到了地理位置消息,則返回附近的飯店 */ //--------第一步:轉換經緯度------- //參考鏈接:http://www.miracleart.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); //用戶發(fā)送騰訊的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 = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>10</ArticleCount> <Articles>"; $items = ""; foreach($arr as $v){ $items .= "<item> <Title><![CDATA[" . $v['name'] .":". $v['address'] . "]]></Title> <Description><![CDATA[" . $v['address'] . "]]></Description> <PicUrl><![CDATA[" . $v['img_url'] . "]]></PicUrl> <Url><![CDATA[" . $v['detail_url'] . "]]></Url> </item>"; } $foot = "</Articles></xml>"; $res = $head . $items . $foot; $resultStr = sprintf($res, $fromUsername, $toUsername, $time); echo $resultStr; exit(); }
Si vous ne comprenez pas comment utiliser le code, vous pouvez vous référer à mon article précédent : Réponse textuelle simple Requête sur les articles sélectionnés par WeChat
Une fois que les utilisateurs ont suivi le compte officiel, répondu pour rechercher un h?tel, puis répondu avec l'emplacement, ils pourront obtenir des informations sur les h?tels à proximité.
Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)