日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 公众号 关注者位置_微信公众号获取用户地理位置

發布時間:2024/1/8 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 公众号 关注者位置_微信公众号获取用户地理位置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

很久沒搞微信的js-sdk了, 搞了一下午, 刷新頁面老是失敗, 沒想到結合經驗給大家展示下獲取用戶地理位置

第一步:登錄微信公眾號https://mp.weixin.qq.com

首先先設置最基本的配置(這一步大家應該都會)

第二步:點擊公眾平臺右上角展開點擊功能設置

配置網頁授權域名

填寫項目所使用的的域名并將文件下載放到項目根目錄

然后在配置js安全域名同樣將要下載的txt文件放到項目目錄也可以是二級目錄, 如果放到二級目錄域名后面要就目錄路徑哦

保存之后:

第三步: 公眾號左邊欄,開發->子欄目:接口權限

開啟用戶獲取地理位置

第四步:先在php服務端配置好js-sdk所需要的參數:appId, timestamp , noceStr, signature , jsApiList

function getSignPackage($appId,$appSecret) {$jsapiTicket = getJsApiTicket($appId,$appSecret);//注意 URL 一定要動態獲取,不能 hardcode.

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";$url = "{$protocol}{$_SERVER[HTTP_HOST]}{$_SERVER[REQUEST_URI]}";$timestamp = time();$nonceStr =createNonceStr();//這里參數的順序要按照 key 值 ASCII 碼升序排序

$string = "jsapi_ticket={$jsapiTicket}&noncestr={$nonceStr}&timestamp={$timestamp}&url={$url}";$signature = sha1($string);//var_dump($signature);die;

$signPackage = array("appId" => $appId,

"nonceStr" => $nonceStr,

"timestamp" => $timestamp,

"url" => $url,

"signature" => $signature,

"rawString" => $string);return $signPackage;

}function createNonceStr($length = 16) {$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";$str = "";for ($i = 0; $i < $length; $i++) {$str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);

}return $str;

}function getJsApiTicket($appId,$appSecret) {//jsapi_ticket 應該全局存儲與更新,以下代碼以寫入到文件中做示例

$data = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT']."\jsapi_ticket.json"));//var_dump($data->expire_time);die;

if ($data->expire_time < time()) {$accessToken = getAccessToken($appId,$appSecret);//如果是企業號用以下 URL 獲取 ticket

// $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";

$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token={$accessToken}";$res = json_decode(httpGet($url));$ticket = $res->ticket;if ($ticket) {$data->expire_time = time() + 7000;$data->jsapi_ticket = $ticket;$fp = fopen($_SERVER['DOCUMENT_ROOT']."\jsapi_ticket.json", "w");fwrite($fp, json_encode($data));fclose($fp);

}

}else{$ticket = $data->jsapi_ticket;

}return $ticket;

}function getAccessToken($appId,$appSecret) {//access_token 應該全局存儲與更新,以下代碼以寫入到文件中做示例

$data = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT']."\access_token.json"));if ($data->expire_time < time()) {//如果是企業號用以下URL獲取access_token

// $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}";$res = json_decode(httpGet($url));$access_token = $res->access_token;if ($access_token) {$data->expire_time = time() + 7000;$data->access_token = $access_token;$fp = fopen($_SERVER['DOCUMENT_ROOT']."\jsapi_ticket.json", "w");fwrite($fp, json_encode($data));fclose($fp);

}

}else{$access_token = $data->access_token;

}return $access_token;

}function httpGet($url) {$curl =curl_init();

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_TIMEOUT, 500);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl, CURLOPT_URL, $url);$res = curl_exec($curl);

curl_close($curl);return $res;

}

然后接下來調用官方微信地理位置接口

這段代碼就是如果你的微信接口走不通就會執行此方法 , 還是加上此代碼為好

wx.error(function(res){

alert("接口調取失敗")

});

使用官方接口

res.checkResult.getLocation(接口名字) 成功true 失敗false

success: function (res) {

// alert(JSON.stringify(res));

// alert(JSON.stringify(res.checkResult.getLocation));

if (res.checkResult.getLocation == false) {

alert('你的微信版本太低,不支持微信JS接口,請升級到最新的微信版本!');

return;

}

}

debug:true,

appId:'<?php echo $signPackage["appId"]; ?>',

timestamp:<?php echo $signPackage["timestamp"]; ?>,

nonceStr:'<?php echo $signPackage["nonceStr"]; ?>',

signature:'<?php echo $signPackage["signature"]; ?>',

jsApiList: [//所有要調用的 API 都要加到這個列表中

'getLocation',

]

});

wx.ready(function() {

wx.checkJsApi({

jsApiList: ['getLocation'],

success:function(res) {//alert(JSON.stringify(res));

//alert(JSON.stringify(res.checkResult.getLocation));

if (res.checkResult.getLocation == false) {

alert('你的微信版本太低,不支持微信JS接口,請升級到最新的微信版本!');return;

}

}

});

wx.error(function(res){

alert("接口調取失敗")

});

wx.getLocation({

success:function(res) {

alert(JSON.stringify(res));

},

cancel:function(res) {

alert('用戶拒絕授權獲取地理位置');

}

});

});

公眾號一定要記得配置js安全域名, 這是一個會可能被遺忘的步驟, 此時如果你進入微信公眾號頁面 詢問你獲取地理位置彈框, 授權之后, 會彈框經緯度說明你成功了

總結

以上是生活随笔為你收集整理的python 公众号 关注者位置_微信公众号获取用户地理位置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。