Go语言开发公众号之向用户主动推送消息

客服消息接口

接口调用说明

http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
 

各消息类型所需的JSON数据包如下:

发送文本消息

 

{
    "touser":"OPENID",
    "msgtype":"text",
    "text":
    {
         "content":"Hello World"
    }
}

发送文本消息时,支持插入跳小程序的文字链

文本内容<a href="http://www.qq.com" data-miniprogram-appid="appid" data-miniprogram-path="pages/index/index">点击跳小程序</a>

说明: 1.data-miniprogram-appid 项,填写小程序appid,则表示该链接跳小程序; 2.data-miniprogram-path项,填写小程序路径,路径与app.json中保持一致,可带参数; 3.对于不支持data-miniprogram-appid 项的客户端版本,如果有herf项,则仍然保持跳href中的网页链接; 4.data-miniprogram-appid对应的小程序必须与公众号有绑定关系。

发送图片消息

 

{
    "touser":"OPENID",
    "msgtype":"image",
    "image":
    {
      "media_id":"MEDIA_ID"
    }
}
发送语音消息



{
    "touser":"OPENID",
    "msgtype":"voice",
    "voice":
    {
      "media_id":"MEDIA_ID"
    }
}

发送视频消息

{
    "touser":"OPENID",
    "msgtype":"video",
    "video":
    {
      "media_id":"MEDIA_ID",
      "thumb_media_id":"MEDIA_ID",
      "title":"TITLE",
      "description":"DESCRIPTION"
    }
}

发送音乐消息

{
    "touser":"OPENID",
    "msgtype":"music",
    "music":
    {
      "title":"MUSIC_TITLE",
      "description":"MUSIC_DESCRIPTION",
      "musicurl":"MUSIC_URL",
      "hqmusicurl":"HQ_MUSIC_URL",
      "thumb_media_id":"THUMB_MEDIA_ID" 
    }
}

发送图文消息(点击跳转到外链) 图文消息条数限制在1条以内,注意,如果图文数超过1,则将会返回错误码45008。

{
    "touser":"OPENID",
    "msgtype":"news",
    "news":{
        "articles": [
         {
             "title":"Happy Day",
             "description":"Is Really A Happy Day",
             "url":"URL",
             "picurl":"PIC_URL"
         }
         ]
    }
}

 

发送图文消息(点击跳转到图文消息页面) 图文消息条数限制在1条以内,注意,如果图文数超过1,则将会返回错误码45008。

 

{
    "touser":"OPENID",
    "msgtype":"mpnews",
    "mpnews":
    {
         "media_id":"MEDIA_ID"
    }
}

发送菜单消息(菜单消息不支持测试号,必须是正式且已认证过的公众号)

 

{
  "touser": "OPENID"
  "msgtype": "msgmenu",
  "msgmenu": {
    "head_content": "您对本次服务是否满意呢? "
    "list": [
      {
        "id": "101",
        "content": "满意"
      },
      {
        "id": "102",
        "content": "不满意"
      }
    ],
    "tail_content": "欢迎再次光临"
  }
}

按照上述例子,用户会看到这样的菜单消息:

“您对本次服务是否满意呢?

满意

不满意”

其中,“满意”和“不满意”是可点击的,当用户点击后,微信会发送一条XML消息到开发者服务器,格式如下:

 

<xml>
<ToUserName><![CDATA[ToUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>1500000000</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[满意]]></Content>
<MsgId>1234567890123456</MsgId>
<bizmsgmenuid>101</bizmsgmenuid>
</xml>

XML参数说明:

参数说明
ToUserName开发者帐号
FromUserName接收方帐号(OpenID)
CreateTime消息创建时间戳
MsgTypeText
Content点击的菜单名
MsgId消息ID
bizmsgmenuid点击的菜单ID

收到XML推送之后,开发者可以根据提取出来的bizmsgmenuid和Content识别出微信用户点击的是哪个菜单。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
消息网关是一个用于将消息从服务器发送到客户端的系统组件。使用Go语言开发一个下行消息网关可以按照以下步骤进行: 1. 定义消息结构:首先,需要定义消息的结构。根据你的需求,确定消息的字段和格式。 2. 实现消息推送逻辑:编写代码来处理服务器端发送到网关的消息。这可能涉及到与其他系统通信,例如与消息队列、数据库或其他服务进行交互。 3. 客户端管理和连接管理:实现客户端管理和连接管理逻辑。这包括跟踪已连接的客户端、管理连接的状态、处理客户端注册和注销等操作。 4. 协议支持:根据你的需求选择适合的通信协议,例如WebSocket、gRPC等,并实现相应的协议支持代码。 5. 并发处理:使用Go语言的并发机制来处理多个客户端同时发送的消息。可以使用goroutine和channel来实现并发处理。 6. 监听端口:启动网关服务器,监听指定的端口,等待客户端的连接并处理消息推送。 7. 错误处理和日志记录:实现错误处理机制,包括捕获和处理异常情况,并记录日志以便进行故障排查和监控。 8. 部署和测试:完成开发后,将网关部署到目标环境中,并进行测试,确保它能够正确地接收服务器发送的下行消息并将其推送给客户端。 请注意,以上步骤仅提供了一个概述,具体的实现细节会根据你的需求和架构设计而有所不同。你可以根据自己的项目需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值