這個系列的第二篇教程,介紹的實(shí)際是被動方式給微信用戶發(fā)文本消息,即微信用戶關(guān)注您的公眾號時,微信平臺將這個關(guān)注事件通過一個HTTP post發(fā)送到您的微信消息服務(wù)器上。您對這個post請求做了應(yīng)答(格式為文本),則該應(yīng)答會通過微信平臺投遞到您粉絲的微信應(yīng)用上。
微信開發(fā)者中心的文檔將這種行為稱為“被動回復(fù)用戶消息”:
回復(fù)消息報文的格式在開發(fā)者文檔里也有清晰的定義,是一個xml格式的字符串。我的第二篇教程里也有具體的發(fā)送該報文的代碼示例。
本文作為這個開發(fā)系列的第三篇教程,介紹的是如何用API的方式,主動向某個粉絲發(fā)送文本消息。
如何找到合適的微信消息發(fā)送API呢?還是登錄微信開發(fā)者中心,在控制臺菜單“客服消息”里,
客服接口-發(fā)消息就是我們需要使用的API。url如下:https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=<傳入您的access token>
為了使用這個API,我們首先需要獲得調(diào)用API的access token:
Access token的獲取很簡單,用Appid和secret去換。
調(diào)用另一個API,https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=<您微信公眾號的appid>&secret=<您微信公眾號的secret>。這個API會返回access token以及過期時間。
您微信公眾號的appid和secret可以在微信開發(fā)者中心的控制臺里找到,在“測試號管理”頁面的標(biāo)簽頁下。
現(xiàn)在我們拿到access token后,就可以調(diào)用微信文本消息發(fā)送API給指定微信用戶發(fā)送文本消息了??次蚁聢D這個postman里的調(diào)用。紅色高亮的測試文本信息將通過微信API發(fā)送到我手機(jī)上:
測試成功了:
最后,我們用nodejs實(shí)現(xiàn)通過API給指定用戶發(fā)送文本信息。
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;
消費(fèi)代碼:
sendMessage(<此處傳入接收該消息的微信用戶的openid>, “這條消息是用nodejs發(fā)送的!”);
用node命名執(zhí)行上面的代碼,也能成功在微信app上接收到通過nodejs代碼調(diào)用微信消息API的方式發(fā)送的文本消息。