package dingdingapi import ( "fmt" "net/url" "testing" ) func TestCorpAsyncText(t *testing.T) { err := api.CorpAsyncSend([]string{ "142239066635627505", // 老赵 // "051063452224284964", // 我 }, nil, false, map[string]interface{}{ "msgtype": "text", "text": map[string]interface{}{ "content": fmt.Sprintf("http://www.jxc4.com/billshow/?path=%s", "http://image.jxc4.com/export/store_status_15984166050_20190716T180128.xlsx"), }, }) if err != nil { t.Fatal(err.Error()) } } func TestCorpAsyncLink(t *testing.T) { err := api.CorpAsyncSend([]string{ "051063452224284964", }, nil, false, map[string]interface{}{ "msgtype": "link", "link": map[string]interface{}{ "title": "门店状态报警", "text": ` 1 2 3 4 5 6 2019-07-16T18:34:28.225+0800 DEBUG platformapi/platformapi.go:102 begin AccessPlatfor mAPIWithRetry:49E6357AA7B511E9B6B2186590E02977 do:GE T url:https://oapi.dingtalk.com/gettoken?appsecret=1zooB4bmEX Pesdwb1ElWASVQ1vinOSZM-1XCUFrrSjHsNAId1UuVCT5tmHSmg5_V&appkey=dingpx4hcf55zb4ubewg 2019-07-16T18:34:28.721+0800 DEBUG platfor mapi/platformapi.go:104 end AccessPlatformAPIWithRetry:49E63 57AA7B511E9B6B2186590E02977 do url:https://oapi.dingtalk.com/gettoken? `, "messageUrl": fmt.Sprintf("dingtalk://dingtalkclient/page/link?url=%s&pc_slide=true", url.QueryEscape("http://image.jxc4.com/export/store_status_15984166050_20190716T180128.xlsx")), "picUrl": "http://cms-bucket.ws.126.net/2019/07/16/2d5a5498da2e45b28acc8c185015e6e6.jpeg?imageView&thumbnail=453y225&quality=85", }, }) if err != nil { t.Fatal(err.Error()) } } func TestCorpAsyncSendMarkdown(t *testing.T) { err := api.CorpAsyncSendMarkdown([]string{ "051063452224284964", }, nil, false, "首屏会话透出的展示内容", ` ## 门店: 邻里店(101949) - 城市: 南宁市 - 平台: 京东到家 - 平台ID: 11765547 - 之前状态: 营业中 - 当前状态: 长期休息 - 之前营业时间: 09:30-23:30 - 当前营业时间: 09:30-23:30 ## 门店: 平西店(101677) - 城市: 南宁市 - 平台: 京东到家 - 平台ID: 11765538 - 之前状态: 营业中 - 当前状态: 长期休息 - 之前营业时间: 08:00-19:30 - 当前营业时间: 08:00-19:30 [详情点我](http://www.jxc4.com/billshow/?normal=true&path=http://image.jxc4.com/export/store_status_13206278888_20190717T091545.xlsx) `) if err != nil { t.Fatal(err.Error()) } } func TestCorpAsyncSendSimple(t *testing.T) { err := api.CorpAsyncSendSimple("051063452224284964", ` 管理用户列表或角色列表。 Casbinadfs 认为由项目自身来管理用户、角色列表更为合适, 用户通常有他们的密码,但是 Casbin 的设计思想并不是把它作为一个存储密码的容器。 而是存储RBAC方案中用户和角色之间的映射关系。 `) if err != nil { t.Fatal(err.Error()) } }