亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁(yè) 微信小程式 微信開(kāi)發(fā) PHP微信開(kāi)發(fā)之根據(jù)用戶回覆關(guān)鍵字\位置返回附近訊息

PHP微信開(kāi)發(fā)之根據(jù)用戶回覆關(guān)鍵字\位置返回附近訊息

Mar 08, 2017 pm 03:55 PM

這篇文章主要為大家詳細(xì)介紹了PHP微信開(kāi)發(fā)之簡(jiǎn)單實(shí)現(xiàn)根據(jù)用戶回復(fù)關(guān)鍵字\位置返回附近信息,感興趣的小伙伴們可以參考一下

用戶關(guān)注了微信公眾號(hào)之後,可以回覆使用者的地理位置(騰訊地圖)給公眾號(hào),提取位置資訊的緯度和經(jīng)度,轉(zhuǎn)換為百度的緯度和經(jīng)度。然後根據(jù)緯度和經(jīng)度,呼叫百度地圖的API,返回附近半徑2KM以內(nèi)的「飯店」「旅館」(可自訂)等資訊。呼叫百度的API時(shí),需要取得apiKEY,如果沒(méi)有,請(qǐng)到百度開(kāi)發(fā)者中心去註冊(cè)和申請(qǐng)。

首先,用一組緯度和經(jīng)度來(lái)測(cè)試介面?zhèn)骰氐馁Y料:

<?php

/**根據(jù)一組經(jīng)緯度查找附近2公里以內(nèi)的關(guān)鍵字**/

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

//--------第一步:轉(zhuǎn)換經(jīng)緯度----
//參考鏈接:http://ipnx.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=這里填寫(xiě)你的apikey";

$res = file_get_contents($url);
$res = json_decode($res, true);

//用戶發(fā)送騰訊的soso地圖位置信息經(jīng)過(guò)轉(zhuǎn)換之后,得到百度地圖的經(jīng)緯度
$x = $res[&#39;result&#39;][0][&#39;x&#39;];
$y = $res[&#39;result&#39;][0][&#39;y&#39;];

//---------第二步:根據(jù)經(jīng)緯度和關(guān)鍵詞獲得附近的信息----------
//參考鏈接:http://ipnx.cn/
$url = "http://api.map.baidu.com/place/v2/search?ak=這里填寫(xiě)你的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 "
";

傳回的資料

?

如果你填寫(xiě)了正確的apikey,那麼應(yīng)該回傳了上面的資料了。接下來(lái):在微信的介面平臺(tái)程式碼(放在你的公網(wǎng)網(wǎng)域空間裡的PHP腳本)裡,判斷訊息類型,並取得緯度和經(jīng)度,呼叫百度地圖API,拼接X(jué)ML返回即可。由於百度API回傳的資料裡,沒(méi)有「飯店」的縮圖,所以我就用了自己網(wǎng)站的一張圖。
?為了能夠讓使用者自訂尋找周圍的「飯店」
?或「旅館」等訊息,可以先讓使用者回覆「尋找XX”,然後提取出XX,放到session裡,等使用者再回覆地理位置時(shí)取出session。但我設(shè)定了session之後,沒(méi)能取出session。所以我這裡用新浪雲(yún)的KVDB服務(wù),當(dāng)然你也可以用memcache或是Redis等快取方式。

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

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

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

        //調(diào)用新浪云的KVDB服務(wù)
        $kv = new SaeKV();
        $kv->init();
        $kv->set(&#39;find&#39;, $find);

        $contentStr = "選擇表情旁邊的&#39;+&#39;,發(fā)送位置,即可查找你要找的地方";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
        echo $resultStr;
        exit();

      }

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

          //--------第一步:轉(zhuǎn)換經(jīng)緯度-------
          //參考鏈接:http://ipnx.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=這里填寫(xiě)你的apikey";
          
          $res = file_get_contents($url);
          $res = json_decode($res, true);

          //用戶發(fā)送騰訊的soso地圖位置信息經(jīng)過(guò)轉(zhuǎn)換之后,得到百度地圖的經(jīng)緯度
          $x = $res[&#39;result&#39;][0][&#39;x&#39;];
          $y = $res[&#39;result&#39;][0][&#39;y&#39;];

          //---------第二步:根據(jù)經(jīng)緯度和關(guān)鍵詞獲得附近的信息----------
          $kv = new SaeKV();
          // 初始化KVClient對(duì)象
          $kv->init();
          
          $url = "http://api.map.baidu.com/place/v2/search?ak=這里填寫(xiě)你的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;;
          }

          //--------第三步:拼接X(jué)ML字符串--------
          $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();


}

如果你看不懂程式碼怎麼用,可以參考我之前的文章:簡(jiǎn)單的文字回覆??? 查詢微信精選文章?

用戶追蹤了公眾號(hào)之後,回覆尋找飯店,然後回覆地理位置之後,就能得附近的飯店資訊了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助

以上是PHP微信開(kāi)發(fā)之根據(jù)用戶回覆關(guān)鍵字\位置返回附近訊息的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72