温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用JavaScript给微信用户发送消息

发布时间:2021-11-12 10:31:13 来源:亿速云 阅读:473 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关如何使用JavaScript给微信用户发送消息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体实现

我们登陆微信公众号的控制台后,点开发-> 基本配置:

如何使用JavaScript给微信用户发送消息

能看到我们配置的微信消息服务器的地址。在我第一篇教程里讲到,我们在本地用nodejs开发一个Web服务器,然后部署到您喜欢的云平台,比如腾讯云,阿里云,百度云等等(我选的是云平台Heroku),然后把部署后应用的url维护到微信公众号控制台的服务器配置,如下图所示。维护好之后,微信用户关注该公众号或者给该公众号发送的消息,就会通过微信平台投递到您的nodejs应用,我们在里面就可以编程实现一些需求了。下文将该nodejs应用称为“消息服务器”。

如何使用JavaScript给微信用户发送消息

我们首先用nodejs的express module获得一个app对象:

var express = require('express');var app = express();

当有微信用户关注您的公众号时,微信平台会发送一个HTTP post请求到您的消息服务器。您需要编程响应这个post请求。

app.route('/').post(function(req,res){    var content;    // 把微信平台发送的HTTP post的内容存储到变量content里
    req.on("data",function(data){
        content = data.toString("utf-8");
    }
    );
    req.on("end",function(){        console.log("new http post: " + content );        // 打印HTTP post请求,做调试用

// 从微信平台发送的HTTP请求里解析出事件对象。如果是粉丝点关注,事件类型为subscribe。

var msgType = formattedValue(getXMLNodeValue('MsgType', content));// 有粉丝点了关注按钮啦if( event === "subscribe"){    // 回复一条欢迎消息给粉丝
    var replyxml = replyMessage(content, "欢迎欢迎,终于等到您了!");
    res.send(replyxml);
     }
}

上述代码逻辑很清晰,看注释都易懂。关键就是如何把欢迎消息回复给点了关注按钮的粉丝。

核心逻辑在replyMessage函数里,这个函数的任务是将粉丝的openID从微信平台发给消息服务器的HTTP post内容中解析出来。代码如下:

输入参数1: 微信平台发给消息服务器的HTTP post全部内容

输入参数2:准备给粉丝推送的欢迎消息

输出参数:准备通过HTTP返回给粉丝的欢迎消息的微信报文,需符合微信定义的消息规范,具体规范如下代码所示。

module.exports = function(originalBody, contentToReply){    // 从原始报文里提取出消息的接收方
    var ToUserName = getXMLNodeValue('ToUserName', originalBody);    // 从原始报文里提取出消息的发送方
    var FromUserName = getXMLNodeValue('FromUserName',originalBody);    var CreateTime = getXMLNodeValue('CreateTime',originalBody);    // 告诉微信平台这条消息的类型是文本消息
    var MsgType = "<![CDATA[text]]>";    // 准备将欢迎消息的文字内容加入消息报文
    var Content = contentToReply;    // 开始拼装准备发送给微信粉丝的消息报文
    var xml = '<xml><ToUserName>'+FromUserName+'</ToUserName><FromUserName>'+ToUserName+'</FromUserName><CreateTime>'+CreateTime+'</CreateTime><MsgType>'
    + MsgType + '</MsgType><Content>'+Content+'</Content></xml>';    console.log("xml to be sent: " + xml);    // 打印消息报文
    return xml;    // 返回消息报文}
;

感谢各位的阅读!关于“如何使用JavaScript给微信用户发送消息”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI