| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package kf
- import (
- "encoding/json"
- "fmt"
- "github.com/silenceper/wechat/v2/util"
- )
- const (
- //发送消息
- sendMsgAddr = "https://qyapi.weixin.qq.com/cgi-bin/kf/send_msg?access_token=%s"
- )
- // SendMsgSchema 发送消息响应内容
- type SendMsgSchema struct {
- util.CommonError
- MsgID string `json:"msgid"` // 消息ID。如果请求参数指定了msgid,则原样返回,否则系统自动生成并返回。不多于32字节, 字符串取值范围(正则表达式):[0-9a-zA-Z_-]*
- }
- // SendMsg 发送消息
- // 当微信客户处于“新接入待处理”或“由智能助手接待”状态下,可调用该接口给用户发送消息。
- // 注意仅当微信客户在主动发送消息给客服后的48小时内,企业可发送消息给客户,最多可发送5条消息;若用户继续发送消息,企业可再次下发消息。
- // 支持发送消息类型:文本、图片、语音、视频、文件、图文、小程序、菜单消息、地理位置。
- // 目前该接口允许下发消息条数和下发时限如下:
- //
- // 用户动作 允许下发条数限制 下发时限
- // 用户发送消息 5条 48 小时
- func (r *Client) SendMsg(options interface{}) (info SendMsgSchema, err error) {
- var (
- accessToken string
- data []byte
- )
- accessToken, err = r.ctx.GetAccessToken()
- if err != nil {
- return
- }
- data, err = util.PostJSON(fmt.Sprintf(sendMsgAddr, accessToken), options)
- if err != nil {
- return
- }
- if err = json.Unmarshal(data, &info); err != nil {
- return
- }
- if info.ErrCode != 0 {
- return info, NewSDKErr(info.ErrCode, info.ErrMsg)
- }
- return info, nil
- }
|