E企盈营销工具技术服务商 热线:4006-838-530

微信小程序客服自动回复消息功能采坑(完)

E企盈直播平台营销卖货系统

小程序接入客服,我们就需要调用微信客服功能。很简单,只需要在页面中使用 <button open-type=”contact” /> 可以显示进入客服会话按钮。然后我们就能登录网页版的微信公众平台的客服页面进去回复各种千奇百怪的问题了。但是有个问题,我们如何做到自动回复呢?那么就需要通过自己的服务器去通过微信端请求服务,完成这项工作。接入指引 · 小程序附上官网接入指南,这可是相当的简洁。First填写服务器配置的图:<!—more—>在这里填写的同时我们需要在后台写get请求验证。官方提供了一个非常简洁的一个php代码。。那是相当的坑爹啊。这里我是用express写得提供一个例子function checkSignature(params) {    var key = [params.token, params.timestamp, params.nonce].sort().join(”);    var sha1 = crypto.createHash(‘sha1’);    sha1.update(key);    return sha1.digest(‘hex’) === params.signature;  }app.get(‘/wxlalalala’, function(req, res, next) {    let token = ‘xxxxx’; // 填写服务器配置上所填的token    let isCheck = checkSignature({      signature: req.query.signature,      timestamp: req.query.timestamp,      nonce: req.query.nonce,      token: token,    });    req.body = req.query.echostr;    res.send(req.body);    return req.body;  });复制代码然后我们就完成了最关键的一步。之后就可以去写,客户发了什么我们就自动回啥的逻辑。Second当我们去接受客户发的消息和事件,我们都需要去通过一个post去接受。当然第一我们需要先去拿access_token。没有这个我们啥事情都做不了。给上一个官方网站:接口调用凭证 · 小程序,但是毫无代码示例,算了还在自己撸吧。以下自己的code:let access_token = ”;  const getAccessToken = function() {    if (access_token !== ”) {      return access_token;    }    let URL =      ‘https://api.weixin.qq.com/cgi-bin/token?grant_type= client_credential&appid=xxxx&secret=sssss’; // grant_type一定要填client_credential.    let options = {      method: ‘GET’,      url: URL,    };    return new Promise((resolve, reject) => {      request(options, function(err, res, body) {        if (res) {          access_token = JSON.parse(body).access_token;          let expires_in = parseInt(JSON.parse(body).expires_in) – 10;          setTimeout(() => {            access_token = ”;            //getAccessToken();          }, expires_in * 1000);          resolve(access_token);        } else {          reject(err);        }      });    });  };复制代码因为token有7200s的过期时间,所以就存在内存里了。Ok这个我们就有access_token能去做客服自动回复啦!Third再来一个官方客服发送消息的文档:发送客服消息 · 小程序,发现又是啥都没用。。。还是自己动手写一个吧。。毕竟那么精瘦的文档。。T T.那就写一个回复文本消息的吧!其他的类似自己扩展。  const postJson = function(param) {    var options = {      url: param.url,      method: ‘POST’,      body: param.body,      json: true,    };    request(options, function callback(error, response, data) {      if (!error && response.statusCode == 200) {        param.success(response.errcode);      } else {        param.error(error);      }    });  };  async function sendTextMessage(content, data, access_token) {    await postJson({      url:        ‘https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=’ +        access_token,      body: {        touser: data.FromUserName,        msgtype: ‘text’,        text: {          content: content,        },      },      success: function(res) {        console.log(res, ‘send successed!1’);      },      error: function(err) {        console.log(err);      },    });  }复制代码Last回复的函数也写好了,来到最后根据客户发来的消息我们作为智能客服去回消息啦!不多说直接上code。文档。。。就算了只能看看参数啥的。。哎客服消息 · 小程序app.post(‘/wxlalallala’, (req, res, next) => {    let token = ‘xxxxx’;// 填写服务器配置那的token    let reqBody = req.body;    let isCheck = checkSignature({      signature: req.query.signature,      timestamp: req.query.timestamp,      nonce: req.query.nonce,      token: token,    });    if (isCheck) {      let welcome= ‘欢迎’;         switch (reqBody.MsgType) {        case ‘text’: {          //文本消息          sendTextMessage(‘您好,【’+reqBody.Content+’】是未知命令,已转发给人工处理。’+welcomeTips, reqBody, getAccessToken());          break;        }        case ‘image’: {          //用户在客服会话中发送图片消息          sendImageMessage(‘xxxxxxx’, reqBody, getAccessToken());          break;        }        case ‘event’: {            sendTextMessage(welcome, reqBody, getAccessToken());          break;        }        default:          break;      }    }    res.send(‘success’);    next();    res.end();  });复制代码完成啦愉快的使用自动客服回复!!小程序

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 微信小程序客服自动回复消息功能采坑(完)
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏