微信程序开发系列教程(三)使用微信API给微信用户发文本消息

微信程序开发系列教程(三)使用微信API给微信用户发文本消息
最新回答
一枕庭前雪

2022-08-31 08:41:06

使用微信API主动发送文本消息的步骤如下

  • 获取Access Token

    作用:Access Token是调用微信API的凭证,用于验证开发者身份。

    获取方法:通过调用微信提供的API接口获取。具体URL为:

    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
    。其中,APPID和APPSECRET是微信公众号的唯一标识,可在微信开发者中心的“测试号管理”页面找到。

    返回结果:该接口会返回一个JSON对象,包含access_token和expires_in(过期时间,单位为秒)两个字段。

  • 调用客服消息接口发送文本消息

    接口URL

    https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
    。其中,ACCESS_TOKEN是上一步获取的Access Token。

    请求方法:POST。

    请求体格式:JSON。需要包含以下字段:

    touser:接收消息的用户的OpenID。

    msgtype:消息类型,这里为text。

    text:文本消息内容,是一个包含content字段的对象。

    示例请求体

{ "touser": "OPENID", "msgtype": "text", "text": { "content": "Hello World" }}
  • 处理响应

    微信服务器在接收到请求后,会返回一个JSON对象作为响应。如果发送成功,响应中会包含errcode为0的字段;如果发送失败,则会包含相应的错误码和错误信息。

  • Node.js实现示例

    使用Node.js的request模块可以方便地调用微信API发送文本消息。以下是一个简单的实现示例:

const request = require('request');function sendTextMessage(toUser, sMessage) { const 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) { if (!error && response.statusCode === 200) { console.log('消息发送成功:', data); } else { console.error('消息发送失败:', error || data); } });}// 导出函数以便在其他模块中使用module.exports = sendTextMessage;
  • 在使用上述函数时,需要传入接收消息的用户的OpenID和要发送的文本消息内容。例如:
sendTextMessage('用户的OpenID', '这条消息是用Node.js发送的!');
  • 注意事项

    Access Token的有效期通常为2小时,需要定期刷新。在实际应用中,应该将Access Token存储在缓存中,并在过期前重新获取。

    微信API对调用频率有限制,需要避免频繁调用导致被限制。

    在发送消息前,需要确保用户已经关注了公众号,并且公众号有权限向用户发送消息(例如,用户在过去48小时内与公众号有过交互)。