這個系列的第二篇教程,介紹的實際是被動方式給微信用戶發文本消息,即微信用戶關注您的公衆號時,微信平臺將這個關注事件經過一個HTTP post發送到您的微信消息服務器上。您對這個post請求作了應答(格式爲文本),則該應答會經過微信平臺投遞到您粉絲的微信應用上。javascript
微信開發者中心的文檔將這種行爲稱爲「被動回覆用戶消息」:java
回覆消息報文的格式在開發者文檔裏也有清晰的定義,是一個xml格式的字符串。個人第二篇教程裏也有具體的發送該報文的代碼示例。node
本文做爲這個開發系列的第三篇教程,介紹的是如何用API的方式,主動向某個粉絲髮送文本消息。json
如何找到合適的微信消息發送API呢?仍是登陸微信開發者中心,在控制檯菜單「客服消息」裏,api
客服接口-發消息就是咱們須要使用的API。url以下:https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=<傳入您的access token>服務器
爲了使用這個API,咱們首先須要得到調用API的access token:微信
Access token的獲取很簡單,用Appid和secret去換。微信開發
調用另外一個API,https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=<您公衆號的appid>&secret=<您公衆號的secret>。這個API會返回access token以及過時時間。app
您公衆號的appid和secret能夠在微信開發者中心的控制檯裏找到,在「測試號管理」頁面的標籤頁下。post
如今咱們拿到access token後,就能夠調用微信文本消息發送API給指定微信用戶發送文本消息了。看我下圖這個postman裏的調用。紅色高亮的測試文本信息將經過微信API發送到我手機上:
測試成功了:
最後,咱們用nodejs實現經過API給指定用戶發送文本信息。
function sendWCMeaasge(toUser,sMessage){ var options = { url:"https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + config.accessToken, method: "POST", json:true, headers: { "content-type": "application/json"}, body:{ "touser":toUser, "msgtype":"text", "text": { "content":sMessage } } }; request(options,function(error,response,data){ } ); } module.exports = sendWCMeaasge;
消費代碼:
sendMessage(<此處傳入接收該消息的微信用戶的openid>, "這條消息是用nodejs發送的!");
用node命名執行上面的代碼,也能成功在微信app上接收到經過nodejs代碼調用微信消息API的方式發送的文本消息。
要獲取更多Jerry的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼: