Files
baseapi/platformapi/dingdingapi/message.go
2019-07-17 09:20:48 +08:00

57 lines
1.4 KiB
Go

package dingdingapi
import "strings"
const (
MaxWorkMsgLen = 2048
MaxWorkContentLen = MaxWorkMsgLen - 96
)
const (
MsgTyeText = "txt"
MsgTypeImage = "image"
MsgTypeVoice = "voice"
MsgTypeFile = "file"
MsgTypeLink = "link"
MsgTypeOA = "oa"
MsgTypeMarkdown = "markdown"
MsgTypeActionCard = "action_card"
)
func (a *API) CorpAsyncSend(userIDList, deptIDList []string, isToAllUser bool, msg map[string]interface{}) (err error) {
params := map[string]interface{}{
"agent_id": a.agentID,
"msg": msg,
}
if len(userIDList) > 0 {
params["userid_list"] = strings.Join(userIDList, ",")
}
if len(deptIDList) > 0 {
params["dept_id_list"] = strings.Join(deptIDList, ",")
}
if isToAllUser {
params["to_all_user"] = isToAllUser
}
_, err = a.AccessAPI("topapi/message/corpconversation/asyncsend_v2", nil, params)
return err
}
func (a *API) CorpAsyncSendSimple(userID, content string) (err error) {
return a.CorpAsyncSend([]string{userID}, nil, false, map[string]interface{}{
"msgtype": "text",
"text": map[string]interface{}{
"content": content,
},
})
}
func (a *API) CorpAsyncSendMarkdown(userIDList, deptIDList []string, isToAllUser bool, title, content string) (err error) {
return a.CorpAsyncSend(userIDList, deptIDList, isToAllUser, map[string]interface{}{
"msgtype": "markdown",
"markdown": map[string]interface{}{
"title": title,
"text": content,
},
})
}