zoukankan      html  css  js  c++  java
  • 微信程序开发系列教程(三)使用微信API给微信用户发文本消息

    这个系列的第二篇教程,介绍的实际是被动方式给微信用户发文本消息,即微信用户关注您的公众号时,微信平台将这个关注事件通过一个HTTP post发送到您的微信消息服务器上。您对这个post请求做了应答(格式为文本),则该应答会通过微信平台投递到您粉丝的微信应用上。

    微信开发者中心的文档将这种行为称为“被动回复用户消息”:

    回复消息报文的格式在开发者文档里也有清晰的定义,是一个xml格式的字符串。我的第二篇教程里也有具体的发送该报文的代码示例。

    本文作为这个开发系列的第三篇教程,介绍的是如何用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以及过期时间。

    您微信公众号的appid和secret可以在微信开发者中心的控制台里找到,在“测试号管理”页面的标签页下。

    现在我们拿到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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

  • 相关阅读:
    什么是webview
    juqery.fn.extend和jquery.extend
    LeetCode
    5. Longest Palindromic Substring
    42. Trapping Rain Water
    11. Container With Most Water
    621. Task Scheduler
    49. Group Anagrams
    739. Daily Temperatures
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/9818704.html
Copyright © 2011-2022 走看看