mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-05 13:12:26 +08:00
48 lines
1.6 KiB
Go
48 lines
1.6 KiB
Go
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
|
||
)
|
||
if accessToken, err = r.ctx.GetAccessToken(); err != nil {
|
||
return
|
||
}
|
||
if data, err = util.PostJSON(fmt.Sprintf(sendMsgAddr, accessToken), options); 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
|
||
}
|