Heim WeChat-Applet WeChat-Entwicklung Die PHP-WeChat-Entwicklung gibt Informationen in der Nähe basierend auf den Antwortschlüsselwörtern des Benutzers\Standort zurück

Die PHP-WeChat-Entwicklung gibt Informationen in der Nähe basierend auf den Antwortschlüsselwörtern des Benutzers\Standort zurück

Mar 08, 2017 pm 03:55 PM

Dieser Artikel stellt hauptsächlich die einfache Implementierung der PHP-WeChat-Entwicklung vor, um Informationen in der Nähe basierend auf dem Antwort-Keyword-Standort des Benutzers zurückzugeben

Nachdem der Benutzer dem öffentlichen WeChat-Konto gefolgt ist, können Sie darauf zugreifen kann den geografischen Standort des Benutzers (Tencent-Karte) auf das öffentliche Konto antworten, den Breiten- und Längengrad der Standortinformationen extrahieren und ihn in den Breiten- und Längengrad von Baidu umwandeln. Basierend auf dem Breiten- und Längengrad wird dann die API von Baidu Map aufgerufen, um Informationen wie „Restaurants“ und „Hotels“ (kann angepasst werden) innerhalb eines Umkreises von 2 km zurückzugeben. Wenn Sie die API von Baidu aufrufen, müssen Sie apiKEY erwerben. Wenn nicht, gehen Sie bitte zum Baidu Developer Center, um sich zu registrieren und zu bewerben.

Testen Sie zunächst die von der Schnittstelle zurückgegebenen Daten mit einem Satz von Breiten- und Längengraden:

<?php

/**根据一组经纬度查找附近2公里以内的关键字**/

header(&#39;Content-type:text/html;charset=utf-8&#39;);

//--------第一步:转换经纬度----
//参考链接:http://www.php.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);

//用户发送腾讯的soso地图位置信息经过转换之后,得到百度地图的经纬度
$x = $res[&#39;result&#39;][0][&#39;x&#39;];
$y = $res[&#39;result&#39;][0][&#39;y&#39;];

//---------第二步:根据经纬度和关键词获得附近的信息----------
//参考链接:http://www.php.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 "
";
Nach dem Login kopieren

Zurückgegebene Daten

Wenn Sie den richtigen API-Schlüssel eingegeben haben, sollten die oben genannten Daten zurückgegeben werden. Als nächstes: Bestimmen Sie im WeChat-Schnittstellenplattformcode (ein PHP-Skript, das in Ihrem öffentlichen Domain-Namensraum platziert wird) den Nachrichtentyp, ermitteln Sie den Breiten- und Längengrad, rufen Sie die Baidu Map API auf und verbinden Sie das XML, um es zurückzugeben. Da in den von der Baidu-API zurückgegebenen Daten kein Miniaturbild von „Restaurant“ enthalten ist, habe ich ein Bild von meiner eigenen Website verwendet.
Damit Benutzer die Suche nach nahegelegenen „Restaurants“
oder „Hotels“ und anderen Informationen anpassen können, können Benutzer zunächst mit „Suche nach XX“ antworten, dann XX extrahieren, in die Sitzung einfügen und warten damit der Benutzer mit dem geografischen Standort antworten kann. Entfernen Sie die Sitzung, wenn Sie in Position sind. Aber nachdem ich die Sitzung eingerichtet hatte, konnte ich sie nicht entfernen. Daher verwende ich hier den KVDB-Dienst von Sina Cloud. Natürlich können Sie auch Caching-Methoden wie Memcache oder Redis verwenden.

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

elseif($which == "寻找"){

        $find = str_replace($which, "", $keyword);

        //调用新浪云的KVDB服务
        $kv = new SaeKV();
        $kv->init();
        $kv->set(&#39;find&#39;, $find);

        $contentStr = "选择表情旁边的&#39;+&#39;,发送位置,即可查找你要找的地方";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
        echo $resultStr;
        exit();

      }
Nach dem Login kopieren

 elseif($postObj->MsgType == &#39;location&#39;){
          /**
           * 如果是收到了地理位置消息,则返回附近的饭店
           */

          //--------第一步:转换经纬度-------
          //参考链接: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[&#39;result&#39;][0][&#39;x&#39;];
          $y = $res[&#39;result&#39;][0][&#39;y&#39;];

          //---------第二步:根据经纬度和关键词获得附近的信息----------
          $kv = new SaeKV();
          // 初始化KVClient对象
          $kv->init();
          
          $url = "http://api.map.baidu.com/place/v2/search?ak=这里填写你的apikey&output=json&query=" . urlencode($kv->get(&#39;find&#39;)) . "&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[&#39;results&#39;] as $k=>$v){
            $arr[$k][&#39;name&#39;] = $v[&#39;name&#39;];
            $arr[$k][&#39;address&#39;] = $v[&#39;address&#39;];
            $arr[$k][&#39;img_url&#39;] = &#39;http://misakaqnxt-public.stor.sinaapp.com/click.png&#39;;
            $arr[$k][&#39;detail_url&#39;] = isset($v[&#39;detail_info&#39;][&#39;detail_url&#39;])?$v[&#39;detail_info&#39;][&#39;detail_url&#39;]:&#39;&#39;;
          }

          //--------第三步:拼接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[&#39;name&#39;] .":". $v[&#39;address&#39;] . "]]></Title>
            <Description><![CDATA[" . $v[&#39;address&#39;] . "]]></Description>
            <PicUrl><![CDATA[" . $v[&#39;img_url&#39;] . "]]></PicUrl>
            <Url><![CDATA[" . $v[&#39;detail_url&#39;] . "]]></Url>
            </item>";
          }

          $foot = "</Articles></xml>";

          $res = $head . $items . $foot;
          
          $resultStr = sprintf($res, $fromUsername, $toUsername, $time);
          echo $resultStr;
          exit();


}
Nach dem Login kopieren

Wenn Sie nicht verstehen, wie der Code verwendet wird, können Sie auf meinen vorherigen Artikel verweisen: Einfache Textantwort, Abfrage ausgewählter WeChat-Artikel

Nachdem Benutzer dem offiziellen Konto folgen, auf die Suche nach einem Hotel antworten und dann mit der Angabe des Standorts antworten, können sie Informationen zu Hotels in der Nähe erhalten.

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird

Das obige ist der detaillierte Inhalt vonDie PHP-WeChat-Entwicklung gibt Informationen in der Nähe basierend auf den Antwortschlüsselwörtern des Benutzers\Standort zurück. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)