57 lines
1.4 KiB
Go
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,
|
|
},
|
|
})
|
|
}
|