摘要:注冊(cè)測(cè)試號(hào)注冊(cè)的地址在這里要進(jìn)行微信公眾號(hào)的開(kāi)發(fā),那就需要一個(gè)本地的開(kāi)發(fā)環(huán)境來(lái)進(jìn)行開(kāi)發(fā)。而微信測(cè)試號(hào)就正好提供了這樣的一個(gè)環(huán)境。通俗一點(diǎn)理解微信要知道訪問(wèn)它資源是不是這個(gè)當(dāng)前測(cè)試號(hào)。
注冊(cè)測(cè)試號(hào)
注冊(cè)的地址在 這里
要進(jìn)行微信公眾號(hào)的開(kāi)發(fā),那就需要一個(gè)本地的開(kāi)發(fā)環(huán)境來(lái)進(jìn)行開(kāi)發(fā)。而微信測(cè)試號(hào)就正好提供了這樣的一個(gè)development環(huán)境。每個(gè)微信號(hào)只能對(duì)應(yīng)一個(gè)測(cè)試號(hào),但是每個(gè)測(cè)試號(hào)可以開(kāi)發(fā)多個(gè)微信公眾號(hào)項(xiàng)目。微信號(hào)與測(cè)試號(hào)是一一對(duì)應(yīng)的關(guān)系,而測(cè)試號(hào)與開(kāi)發(fā)項(xiàng)目是一對(duì)多的關(guān)系。進(jìn)入之后會(huì)看到頁(yè)面里面有以下幾個(gè)大塊。
測(cè)試號(hào)信息
接口配置信息
JS接口安全域名
測(cè)試號(hào)二維碼
模板消息接口
體驗(yàn)接口權(quán)限表
下面針對(duì)每個(gè)點(diǎn)介紹一下具體是干嘛的。
測(cè)試號(hào)信息包含了appId、appsecret。像之前說(shuō)的,可以理解為你的賬號(hào)和密碼。每個(gè)測(cè)試號(hào)有一個(gè)唯一的appID和appsecret。通俗一點(diǎn)就是說(shuō),他們對(duì)應(yīng)的就是唯一的賬號(hào)和密碼,而且不能修改。
接口配置信息
URL:
URL就是你正在開(kāi)發(fā)的項(xiàng)目的后端的服務(wù)器中微信驗(yàn)證服務(wù)器資源有效性的接口。前面這句話讀起來(lái)可能有些繞口。通俗一點(diǎn)理解:微信要知道訪問(wèn)它資源是不是這個(gè)當(dāng)前測(cè)試號(hào)。同時(shí),也讓你確定,這個(gè)請(qǐng)求是來(lái)自微信。這樣一來(lái),就可以相互確認(rèn)身份。只有確認(rèn)是當(dāng)前測(cè)試號(hào)發(fā)起的請(qǐng)求,才會(huì)放行。那么問(wèn)題來(lái)了,如何驗(yàn)證呢?這個(gè)時(shí)候Token就有用了。
微信會(huì)對(duì)配置的URL(也就是你的后端服務(wù)器的鑒權(quán)接口)發(fā)起http GET請(qǐng)求,下面是鑒權(quán)接口的代碼,這里用koa當(dāng)作例子。順便安利一波koa中巨(自)好(己)用(寫)的中間件 koa2-response。
const sha1 = require("sha1"); // 驗(yàn)證服務(wù)器資源 exports.verification = (ctx, next) => { const token = "你自己的Token"; const { signature, nonce, timestamp, echostr } = ctx.query; const str = [token, timestamp, nonce].sort().join(""); const sha = sha1(str); if (signature === sha) { ctx.body = String(echostr); } }
說(shuō)到驗(yàn)證服務(wù)器資源的時(shí)候可能有些人會(huì)有疑問(wèn)。開(kāi)發(fā)不是在本地開(kāi)發(fā)嗎?微信的服務(wù)器怎么能夠訪問(wèn)我的本地服務(wù)器呢?
如果要在本地開(kāi)發(fā)的話,就需要使用 ngrok ,這個(gè)是用來(lái)實(shí)現(xiàn)內(nèi)網(wǎng)穿透的。意思就是把你的局域網(wǎng)服務(wù)器ip映射到公網(wǎng)上。讓局域網(wǎng)外部的服務(wù)器可以訪問(wèn)你的服務(wù)器資源。下載地址在 這里。下載下來(lái)之后解壓,就會(huì)得到一個(gè)名字叫ngrok的可執(zhí)行文件。用命令行進(jìn)入可執(zhí)行的文件所在的目錄。執(zhí)行以下代碼。
./ngrok http localhost:3000
3000是端口號(hào),根據(jù)你自己的項(xiàng)目端口號(hào)來(lái)。就可以看到如下返回,此時(shí)你的局域網(wǎng)服務(wù)器就可以接受微信的GET請(qǐng)求了。一旦配置成功后,就可以Ctrl + C殺掉這個(gè)進(jìn)程了。一直開(kāi)著可能會(huì)有安全隱患。
Token:
Token是自定義的一個(gè)字符串。可以理解為對(duì)稱加密中的公鑰。在服務(wù)器中的Token需要跟測(cè)試號(hào)中的配置保持一致。
JS接口安全域名關(guān)于微信JS接口安全域名,大概的意思就是你要在特定的域名下的某個(gè)路由,才能使用微信的js-sdk,使用js-sdk可以干嘛呢,微信的官方描述如下。
微信JS-SDK是微信公眾平臺(tái)面向網(wǎng)頁(yè)開(kāi)發(fā)者提供的基于微信內(nèi)的網(wǎng)頁(yè)開(kāi)發(fā)工具包。通過(guò)使用微信JS-SDK,網(wǎng)頁(yè)開(kāi)發(fā)者可借助微信高效地使用拍照、選圖、語(yǔ)音、位置等手機(jī)系統(tǒng)的能力,同時(shí)可以直接使用微信分享、掃一掃等微信特有的能力,為微信用戶提供更優(yōu)質(zhì)的網(wǎng)頁(yè)體驗(yàn)。
具體的接入流程可以參考我的另一篇文章, 如何正確的接入微信JS-SDK。在這需要設(shè)置一個(gè)域名,以便在開(kāi)發(fā)的時(shí)候來(lái)使用微信的js-sdk。當(dāng)然在本地開(kāi)發(fā)時(shí),一般都用的localhost,除非你在開(kāi)發(fā)時(shí)一直使用內(nèi)網(wǎng)穿透。所以在JS接口安全域名下我們可以使用局域網(wǎng)的ip,前提是已經(jīng)驗(yàn)證了服務(wù)器資源。
測(cè)試號(hào)二維碼這里會(huì)有一個(gè)你的測(cè)試號(hào)碼二維碼。如果要使用的話,需要掃碼關(guān)注公眾號(hào)才能進(jìn)行開(kāi)發(fā)。右側(cè)則是已經(jīng)關(guān)注了該測(cè)試號(hào)的用戶,最多100個(gè)。關(guān)注后,該測(cè)試號(hào)會(huì)出現(xiàn)在訂閱號(hào)的列表中。
模板消息接口什么是模板消息?微信的官方文檔如下。
模板消息僅用于公眾號(hào)向用戶發(fā)送重要的服務(wù)通知,只能用于符合其要求的服務(wù)場(chǎng)景中,如信用卡刷卡通知,商品購(gòu)買成功通知等。不支持廣告等營(yíng)銷類消息以及其它所有可能對(duì)用戶造成騷擾的消息。
其使用規(guī)則如下:
所有服務(wù)號(hào)都可以在功能->添加功能插件處看到申請(qǐng)模板消息功能的入口,但只有認(rèn)證后的服務(wù)號(hào)才可以申請(qǐng)模板消息的使用權(quán)限并獲得該權(quán)限;
需要選擇公眾賬號(hào)服務(wù)所處的2個(gè)行業(yè),每月可更改1次所選行業(yè);
在所選擇行業(yè)的模板庫(kù)中選用已有的模板進(jìn)行調(diào)用;
每個(gè)賬號(hào)可以同時(shí)使用25個(gè)模板。
當(dāng)前每個(gè)賬號(hào)的模板消息的日調(diào)用上限為10萬(wàn)次,單個(gè)模板沒(méi)有特殊限制。【2014年11月18日將接口調(diào)用頻率從默認(rèn)的日1萬(wàn)次提升為日10萬(wàn)次,可在MP登錄后的開(kāi)發(fā)者中心查看】。當(dāng)賬號(hào)粉絲數(shù)超過(guò)10W/100W/1000W時(shí),模板消息的日調(diào)用上限會(huì)相應(yīng)提升,以公眾號(hào)MP后臺(tái)開(kāi)發(fā)者中心頁(yè)面中標(biāo)明的數(shù)字為準(zhǔn)。
下面舉個(gè)具體的例子,來(lái)源于微信的官方文檔。我們想要發(fā)送模板消息,就必須要在測(cè)試號(hào)中新建模板消息。點(diǎn)擊模板消息接口中的新增測(cè)試模板接口。點(diǎn)擊之后就會(huì)看到如下的Modal框。
模板標(biāo)題可以隨便取,模板內(nèi)容例子如下。
{{first.DATA}} 商品名稱:{{keyword1.DATA}} 面試時(shí)間:{{keyword2.DATA}} 面試地點(diǎn):{{keyword3.DATA}} {{remark.DATA}}
新建成功之后,就可以在模板消息接口的中的列表看到。然后我們需要往下面的URL發(fā)送POST請(qǐng)求。URL如下。
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
POST的完整數(shù)據(jù)如下:
{ "touser": "OPENID", "template_id": "ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", "url":"http://weixin.qq.com/download", "miniprogram": { "appid": "xiaochengxuappid12345", "pagepath": "index?foo=bar", }, "data": { "first": { "value": "恭喜你購(gòu)買成功!", "color": "#173177", }, "keyword1": { "value": "巧克力", "color": "#173177", }, "keyword2": { "value": "39.8元", "color": "#173177", }, "keyword3": { "value": "2014年9月22日", "color": "#173177", }, "remark": { "value": "歡迎再次購(gòu)買!", "color": "#173177", } } }
向上面的URL發(fā)送POST請(qǐng)求,特定的用戶就會(huì)在測(cè)試號(hào)中看到如下的消息提示。特定的用戶就是touser字段中OPENID所代表的用戶。如果用戶沒(méi)有關(guān)注該測(cè)試號(hào),則不會(huì)收到該模板消息。template_id則填寫我們之前新建的模板消息的id即可。
在文檔中,在此處給出了如下提示。
注:url和miniprogram都是非必填字段,若都不傳則模板無(wú)跳轉(zhuǎn);若都傳,會(huì)優(yōu)先跳轉(zhuǎn)至小程序。開(kāi)發(fā)者可根據(jù)實(shí)際需要選擇其中一種跳轉(zhuǎn)方式即可。當(dāng)用戶的微信客戶端版本不支持跳小程序時(shí),將會(huì)跳轉(zhuǎn)至url。
POST數(shù)據(jù)中,url和miniprogram可填不填,只是會(huì)對(duì)模板的跳轉(zhuǎn)有影響,不影響模板消息的內(nèi)容發(fā)送。
體驗(yàn)接口權(quán)限表在這個(gè)部分,用表格的形式,列出了我們能夠使用的接口,以及該接口的權(quán)限。例如,獲取access_token每日的調(diào)用次數(shù),上限為2000。該部分分為三個(gè)大塊。
對(duì)話服務(wù)
基礎(chǔ)支持
接受消息
發(fā)送消息
用戶管理
推廣支持
界面豐富
素材管理
功能服務(wù)
智能接口
設(shè)備功能
多客服
網(wǎng)頁(yè)服務(wù)
網(wǎng)頁(yè)賬號(hào)
基礎(chǔ)接口
分享接口
圖像接口
音頻接口
智能接口
設(shè)備信息
地理位置
節(jié)目操作
我主要解釋一下網(wǎng)頁(yè)服務(wù)中的網(wǎng)頁(yè)賬號(hào)接口。點(diǎn)開(kāi)后,就可以看到可以修改一個(gè)叫授權(quán)回調(diào)域名的字段。什么叫做授權(quán)回調(diào)。
了解微信鑒權(quán)的老鐵應(yīng)該知道,如果想要獲取微信中的用戶的信息,必須要經(jīng)過(guò)微信的OAuth2.0網(wǎng)頁(yè)授權(quán),微信會(huì)鑒定是否有獲取用戶信息的權(quán)限,如果有的話,就會(huì)帶上一個(gè)免登陸code,將code拼接到我們傳的redirect_uri后,再進(jìn)行重定向。而redirect_uri必須是在這配置的域名下的頁(yè)面,否則回調(diào)不成功,也不能獲取用戶的數(shù)據(jù)。
寫在后面微信的測(cè)試號(hào)接入,關(guān)鍵的步驟其實(shí)是在第二個(gè)接口配置信息中,只要正確的驗(yàn)證了服務(wù)器資源,就基本上已經(jīng)成功了。
如果需要參考如何接入微信的JS-SDK, 可以看下面這篇文章。
如何正確的接入微信JS-SDK
歡迎光臨 個(gè)人博客
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/96809.html
摘要:微信年月日發(fā)公告稱,個(gè)人主體注冊(cè)公眾號(hào)數(shù)量上限由個(gè)調(diào)整為個(gè)。大家都知道每個(gè)微信公眾號(hào)在進(jìn)行開(kāi)發(fā)時(shí),授權(quán)回調(diào)的域名只能設(shè)置一個(gè),正常的開(kāi)發(fā)一般一套環(huán)境就對(duì)應(yīng)一個(gè)域名。 微信2018年11月16日發(fā)公告稱,個(gè)人主體注冊(cè)公眾號(hào)數(shù)量上限由2個(gè)調(diào)整為1個(gè)。企業(yè)類主體注冊(cè)公眾號(hào)數(shù)量上限由5個(gè)調(diào)整為2個(gè)。這個(gè)對(duì)馬上要注冊(cè)公眾號(hào)的企業(yè)來(lái)說(shuō)頓時(shí)心情不好了。 大家都知道每個(gè)微信公眾號(hào)在進(jìn)行開(kāi)發(fā)時(shí),授權(quán)回調(diào)...
摘要:本篇是該系列的第一篇,本地開(kāi)發(fā)環(huán)境搭建以及接入微信。若確認(rèn)此次請(qǐng)求來(lái)自微信服務(wù)器,原樣返回參數(shù)內(nèi)容,則接入生效,成為開(kāi)發(fā)者成功,否則接入失敗。 一、簡(jiǎn)介 關(guān)于微信公眾號(hào)的介紹就省略了,自行搜索。注冊(cè)過(guò)程也不說(shuō)了。我們會(huì)直接注冊(cè)測(cè)試號(hào)來(lái)實(shí)現(xiàn)代碼。這將會(huì)是個(gè)全面講解微信公眾號(hào)開(kāi)發(fā)的系列教程。本篇是該系列的第一篇,本地開(kāi)發(fā)環(huán)境搭建以及接入微信。在開(kāi)始之前最好去看看開(kāi)發(fā)者文檔微信公眾平臺(tái)技術(shù)文...
摘要:一直都想搞一下微信公眾號(hào)網(wǎng)頁(yè)開(kāi)發(fā)公司忙沒(méi)有時(shí)間自己也沒(méi)開(kāi)發(fā)過(guò)所以也沒(méi)有頭緒前兩天通過(guò)自己的摸索以及自行查找的資料終于通過(guò)在本地成功的獲取到了微信的及簽名以及調(diào)用微信的接口因?yàn)楣P者自己在做的時(shí)候費(fèi)了挺長(zhǎng)時(shí)間沒(méi)有找到一個(gè)相對(duì)完整詳細(xì)的一個(gè)項(xiàng)目借 一直都想搞一下微信公眾號(hào)網(wǎng)頁(yè)開(kāi)發(fā),公司忙沒(méi)有時(shí)間自己也沒(méi)開(kāi)發(fā)過(guò)所以也沒(méi)有頭緒,前兩天通過(guò)自己的摸索以及自行查找的資料,終于通過(guò)nodejs在本地成...
摘要:在實(shí)際開(kāi)發(fā)中,無(wú)論是做端端還是微信公眾號(hào)等類型的項(xiàng)目的時(shí)候,或多或少都會(huì)涉及到微信相關(guān)的開(kāi)發(fā),最近公司項(xiàng)目要求實(shí)現(xiàn)微信網(wǎng)頁(yè)授權(quán),并獲取微信用戶基本信息的功能及微信分享的功能,現(xiàn)在總算完成了,但開(kāi)發(fā)過(guò)程中遇到好幾個(gè)坑。 在實(shí)際開(kāi)發(fā)中,無(wú)論是做PC端、WebApp端還是微信公眾號(hào)等類型的項(xiàng)目的時(shí)候,或多或少都會(huì)涉及到微信相關(guān)的開(kāi)發(fā),最近公司項(xiàng)目要求實(shí)現(xiàn)微信網(wǎng)頁(yè)授權(quán),并獲取微信用戶基本信息的...
摘要:在實(shí)際開(kāi)發(fā)中,無(wú)論是做端端還是微信公眾號(hào)等類型的項(xiàng)目的時(shí)候,或多或少都會(huì)涉及到微信相關(guān)的開(kāi)發(fā),最近公司項(xiàng)目要求實(shí)現(xiàn)微信網(wǎng)頁(yè)授權(quán),并獲取微信用戶基本信息的功能及微信分享的功能,現(xiàn)在總算完成了,但開(kāi)發(fā)過(guò)程中遇到好幾個(gè)坑。 在實(shí)際開(kāi)發(fā)中,無(wú)論是做PC端、WebApp端還是微信公眾號(hào)等類型的項(xiàng)目的時(shí)候,或多或少都會(huì)涉及到微信相關(guān)的開(kāi)發(fā),最近公司項(xiàng)目要求實(shí)現(xiàn)微信網(wǎng)頁(yè)授權(quán),并獲取微信用戶基本信息的...
閱讀 1860·2021-11-15 11:39
閱讀 1226·2021-10-18 13:29
閱讀 1187·2021-08-31 09:42
閱讀 2741·2019-08-30 11:11
閱讀 2116·2019-08-26 12:12
閱讀 2115·2019-08-26 10:17
閱讀 3391·2019-08-23 18:38
閱讀 3228·2019-08-23 18:38