微信程序开发系列教程(三)使用微信API给微信用户发文本消息
这个系列的第二篇教程,介绍的实际是被动方式给微信用户发文本消息,即微信用户关注您的公众号时,微信平台将这个关注事件通过一个HTTP post发送到您的微信消息服务器上。您对这个post请求做了应答(格式为文本),则该应答会通过微信平台投递到您粉丝的微信应用上。
微信开发者中心的文档将这种行为称为“被动回复用户消息”:
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8V7OYl1SQCJzuXy2t13QT-GAAcaFbDAn8BTcbYHmzTHYscTCfsrs63c479zLGuwUxaMyZD3shmd8BUYQBXGheVaPoHcAuj4sQyzDvP_vOH6I.jpg)
回复消息报文的格式在开发者文档里也有清晰的定义,是一个xml格式的字符串。我的第二篇教程里也有具体的发送该报文的代码示例。
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8sR8PbUk8zDVLkglkve6B76CAx3K032_D8KngGx5VH-gscTCfsrs63c479zLGuwUxaMyZD3shmd8BUYQBXGheVaPoHcAuj4sQyzDvP_vOH6I.jpg)
本文作为这个开发系列的第三篇教程,介绍的是如何用API的方式,主动向某个粉丝发送文本消息。
如何找到合适的微信消息发送API呢?还是登录微信开发者中心,在控制台菜单“客服消息”里,
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8s_bp8kHi_7qTDb6PiWQi0oqcXG58YVP8Y9w6kgtK5U4scTCfsrs63c479zLGuwUxaMyZD3shmd8BUYQBXGheVS0XmGXGK0VNSP12w_k4VkU.jpg)
客服接口-发消息就是我们需要使用的API。url如下:https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=<传入您的access token>
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8Nu1BONTGRYGI5zWEnKhzjpbvyruq6ey1emYQyzVQNA8scTCfsrs63c479zLGuwUxaMyZD3shmd8BUYQBXGheVaPoHcAuj4sQyzDvP_vOH6I.jpg)
为了使用这个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以及过期时间。
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8ouhVIwgkWn2H0ohlwYk5h7qmsQdl8eRUyy7dIBqQBQ0scTCfsrs63c479zLGuwUxaMyZD3shmd8BUYQBXGheVaPoHcAuj4sQyzDvP_vOH6I.jpg)
您微信公众号的appid和secret可以在微信开发者中心的控制台里找到,在“测试号管理”页面的标签页下。
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8zXGoeBkAeU11AJ6iCnKtywI8ATN9h-u-my77BGAF0kgscTCfsrs63c479zLGuwUxaMyZD3shmd8BUYQBXGheVaPoHcAuj4sQyzDvP_vOH6I.jpg)
现在我们拿到access token后,就可以调用微信文本消息发送API给指定微信用户发送文本消息了。看我下图这个postman里的调用。红色高亮的测试文本信息将通过微信API发送到我手机上:
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8a15KaXfbNv8t1P7-E5XELO_5jrc8Y2Xe9H4Q1dB5aFQscTCfsrs63c479zLGuwUxaMyZD3shmd8BUYQBXGheVaPoHcAuj4sQyzDvP_vOH6I.jpg)
测试成功了:
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8vB-SFXBzQlk4tuoi2XVgFlpEYDzuVb8Zzqxdl9sxtvcscTCfsrs63c479zLGuwUxaMyZD3shmd8BUYQBXGheVaPoHcAuj4sQyzDvP_vOH6I.jpg)
最后,我们用nodejs实现通过API给指定用户发送文本信息。
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8Ap2skb__jZ7T0lCbTF765cIncqyvvgKkSkxUL11T1ZsscTCfsrs63c479zLGuwUxaMyZD3shmd8BUYQBXGheVaPoHcAuj4sQyzDvP_vOH6I.jpg)
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的方式发送的文本消息。
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8OwrxunuZb33S6r2ezPIfW0VU3mXVFI0HNl609XzaZy4scTCfsrs63c479zLGuwUxaMyZD3shmd8BUYQBXGheVaPoHcAuj4sQyzDvP_vOH6I.jpg)
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8zwJxvFWwcbHxopqz58hXD6g8GeKlkYtLjOoIeOW2edAP-PpFD76OUWGM57t7CEKQ7qC4HCdHZEnGUWeSsil81xOZXKfNK6N9zrPTlMzh8gg.jpg)
![微信程序开发系列教程(三)使用微信API给微信用户发文本消息 微信程序开发系列教程(三)使用微信API给微信用户发文本消息](https://cdn.ancii.com/article/image/v1/V1/gl/_d/d_g1lVoFnaHF66uLvjLNgrNwLOlgxjAwTZLe7DAT3x2t904_cuYFw1FRoLgZPQB8cmgOJC4D8kSlUPIHr6etJ5VSMcLrJMboLS-PjY84bIsP-PpFD76OUWGM57t7CEKQ7qC4HCdHZEnGUWeSsil818G4eUThu2p4Pv4MRQhlT2Y.jpg)