权限说明: 需先注册一个机器人并与轻应用建立关联关系后,通过传入轻应用的app_id来使用机器人进行消息的推送。
支持发送card(卡片)、rtf(富文本richtext)、link(链接)及attachment(附件)类型消息
请求
| 参数 | 类型 | 是否必须 | 说明 | 示例 |
|---|---|---|---|---|
| portal | String | 是 | 公司 | testprotal |
| app_id | String | 是 | 发送的轻应用id | testappid |
| touser | Array | 是 | 接收者的open_id数组 | ["ekn6rj6xmyj5gvz1", "dz4pxoeex9o36n7e"] |
| msgtype | String | 是 | 推送消息类型 目前只支持 "rtf"(富文本,可以带html标签), "link"(链接文章),"card"(图文卡片)及"attachment"(附件)四种消息类型 | rtf |
| msg | Object | 是 | 消息内容 | 详见msg消息 |
| need_msg_id | Boolean | 否 | 是否需要返回发送成功的msgId true: 需要 false: 不需要,默认false | true |
| no_forward | Boolean | 否 | 消息转发控制 true: 禁止转发 false: 允许转发 默认为false表示允许消息被转发 | true |
| 参数名称 | 类型 | 是否必输 | 说明 | 示例 |
|---|---|---|---|---|
| content | String | 否 | 消息的内容,若发送rtf及card类型消息此字段需要传入,目前rtf支持的文本长度不能超过60000 | 测试内容 |
| url | String | 否 | link及card类型消息的跳转链接地址 | https://www.ushu.tech/?lang=en |
| title | String | 否 | link类型消息的标题 | 我是一个标题 |
| attachmentId | String | 否 | link、card及attachment类型消息的附件id(获取方式见下方文件上传接口) | 7821688145847456921 |
| hiddenContent | String | 否 | rtf类型消息时传入 隐藏消息内容 | 测试内容 |
| quotedText | String | 否 | rtf类型消息时传入 引用内容 | test |
| buttonInfo | List | 否 | rtf类型消息时传入 按钮信息列表 | 详见下方Button |
| 参数名称 | 类型 | 是否必输 | 说明 | 示例 |
|---|---|---|---|---|
| type | int | 是 | 按钮类型 1: REPLY 2: LINK | 2 |
| textInfo | List | 是 | 国际化的按钮信息 | 详见下方I8nText |
| url | String | 否 | 默认跳转链接地址 | |
| multiUrl | Object | 否 | 多端跳转链接 | 详见下方 multiUrl |
| 参数名称 | 类型 | 是否必输 | 说明 | 示例 |
|---|---|---|---|---|
| lang | String | 是 | 语言类型 zh: 中文 en: 英文 | zh |
| text | String | 是 | 按钮上的文字内容 | 回复 |
| 参数名称 | 类型 | 是否必输 | 说明 | 示例 |
|---|---|---|---|---|
| pcUrl | String | 否 | PC端跳转链接地址 | http://www.baidu.com |
| iosUrl | String | 否 | IOS端跳转链接地址 | http://www.baidu.com |
| androidUrl | String | 否 | 安卓端跳转链接地址 | http://www.baidu.com |
{
"portal":"A9OzNNOV",
"app_id":"gdn3k53qkm",
"touser":["5ly8v1v5g70qxm3j"],
"msgtype":"card",
"msg":{
"content":"我是一个card消息",
"url": "https://mp.weixin.qq.com/s?__biz=MzAxMDY5MTc5Mw==&mid=2651322219&idx=1&sn=e1d741ea1aa7eb43bdf1830cc841f40c&chksm=80bf22d5b7c8abc34d54ebe9403cb3de13b5f4238452fe33d69eff57ab8af1ddfeb370d70446&scene=27#wechat_redirect",
"attachmentId":"7821688145847456921"
}
}
请求示例: 见最后附注各类型消息请求示例
响应
返回字段
| 参数 | 说明 |
|---|---|
| error_code | 返回码,为0表示成功,非0表示调用失败 |
| message | 返回码提示语 |
| invaliduser | 无效的用户(包含无权限和错误用户) |
| invaliddept | 无效的部门(包含无权限和错误部门) |
| invalidrole | 无效的(包含无权限和错误角色) |
| failed_user_num | 发送失败的用户数量 |
响应示例
当need_msg_id为false时,返回结果
{
"error_code" : 0,
"message" : "success",
"result": {
"invaliduser" : ["whos","dontkonw"],
"invaliddept" : [],
"invalidrole": [],
"task_id" : 0,
"send_immediately": true,
"failed_user_num": 0,
"senderTimestamp":1607067922220
}
}
当need_msg_id为true时,返回结果
{
"error_code":0,
"message":"Success",
"result":{
"failed_user_num":0,
"send_immediately":true,
"task_id":0,
"senderTimestamp":1607067922220,
"msg_id_list":[
{
"msgId":3791854,
"openId":"yjo9803krz2v5nkq",
"serverTimestamp":1607067924244
},
{
"msgId":3791853,
"openId":"5ly8v1v5g70qxm3j",
"serverTimestamp":1607067924215
}
]
}
}
请求
| 参数 | 类型 | 是否必须 | 说明 | 示例 |
|---|---|---|---|---|
| app_id | String | 是 | 发送的轻应用id | testappid |
| portal | String | 是 | 公司 | testprotal |
curl -XGET https://open-ushu.hillinsight.tech/cgi/media/get_upload_code?access_token=xxx&app_id=xxx&portal=xxx
响应
application/json| 参数 | 说明 |
|---|---|
| code | 上传文件使用的一次性code ,有效期 10分钟 |
{
"error_code": 0,
"message": "Success",
"result": {
"code": "8430243919338771329"
}
}
请求
https://bot.hillinsight.tech/file/uploadmultipart/form-dataPOST| 参数 | 类型 | 是否必须 | 说明 | 示例 |
|---|---|---|---|---|
| code | String | 是 | 文件预上传接口获取的code | 8430243919338771329 |
| 参数 | 类型 | 是否必须 | 说明 | 示例 |
|---|---|---|---|---|
| file | File | 是 | 文件内容 | - |
| mediatype | 枚举 | 是 | 文件类型(支持的文件类型见下方说明 | image/jpeg |
| filename | String | 是 | 文件名称 | cover.jpg |
| voiceFile | boolean | 否 | 是否为语音附件消息的标识 true: 语音附件 false: 非语音附件 默认false | false |
| duration | int | 否 | 语音附件的时长 单位秒 | 3 |
"image/jpeg"
"image/png"
"image/gif"
"documents/pdf"
"documents/msexcel"
"application/octet-stream"
"video/mp4"
"audio/mp3"
... (更多符合通用规则的 MIME type)
curl --location --request POST 'https://bot.hillinsight.tech/file/upload' \
--header 'code: 351685129250048648' \
--header 'Content-Type: multipart/form-data; boundary=--------------------------359252672869490575862105' \
--form 'file=@/C:/timg_en.jpg' \
--form 'filename=cover.jpg' \
--form 'mediatype=image/jpeg'\
--form 'voiceFile =true'
响应
application/jsoncode 为 0 则为成功,message 为响应结果的文字说明,data 为返回结果具体信息。data 参数说明| 参数 | 说明 |
|---|---|
| attachementId | 附件id |
| url | 加密后的文件地址 |
| attachmentInfo | 附件信息Base64后的字符串 |
{
"code":0,
"message":"success",
"data":{
"attachementId":"075034752205298235109814",
"url":"https://example.com/075034752205298235109814",
"attachmentInfo":
"CfNpWhhNNrRXEglpbWFnZS9wbmcaQIV/K4sYKpnOhVGRjlQmkFfkvsBRJ9mc7yL5YfhOUXPX7H1p+mmrCYWOZRGbZn3ALXfkmoZNTVhH6gsBWO/jR3Qg4IEFMiBgiRH+LD49BKH/dIzP29IrBh24bWmokTGbqYqxMjvSxzoNcmljaHRleHQuanBlZw=="
}
}
在需要打开轻应用的消息中组装信息,不同的消息类型使用的字段不同,如发送rtf类型消息,则在
msg的content中 使用a标签的方式指定打开轻应用的地址;如发送link或card类型消息,则在msg的url中传入需要打开的轻应用地址;地址类似如下形式内容:
ushu-A9OzNNOV://appinfo?app_id=go538vejx9&resource=https%3A%2F%2Fempty.ushu.tech%2Fdetaivoice_uuid%3D00f8ea87-2eb1-4434-b9c6-0d24490a3ad8
上述一些说明:
ushu-${portal}portal为需要打开app的portal_id, 大小写敏感
app_id为需要打开的轻应用的app_id
resource为 url 编码后的轻应用页面地址,这部分域名需与管理后台配置的轻应用打开域名相同
curl --location --request POST 'https://open-ushu.hillinsight.tech/cgi/message/send_single?access_token=754cf7a61d6311ebb70102420a000924' \
--header 'Content-Type: application/json' \
--data-raw '{
"portal":"A9OzNNOV",
"app_id":"gdn3k53qkm",
"touser":["5ly8v1v5g70qxm3j"],
"msgtype":"rtf",
"msg":{
"content":"<strong>T22: \u521b\u5efa\u4e00\u4e2a\u6709desc\u7684<\/strong> <a href=\"http:\/\/www.baidu.com\">🔕<\/a><br><br><i>zhenle<\/i> added a comment.<br>\u201c\ud83d\ude42\u201d<br><a href=http:\/\/www.baidu.com>Click to check it<\/a><br>(Send a message beginning with \"@T22#948:\" to reply)"
}
}'
图示: 
curl --location --request POST 'https://open-ushu.hillinsight.tech/cgi/message/send_single?access_token=754cf7a61d6311ebb70102420a000924' \
--header 'Content-Type: application/json' \
--data-raw '{
"portal":"A9OzNNOV",
"app_id":"gdn3k53qkm",
"touser":["5ly8v1v5g70qxm3j"],
"msgtype":"card",
"msg":{
"content":"打开ushu网站,https://www.ushu.tech/",
"url":"https://www.ushu.tech/?lang=en",
"attachmentId":"7821688145847456921"
}
}'
图示: 
curl --location --request POST 'https://open-ushu.hillinsight.tech/cgi/message/send_single?access_token=754cf7a61d6311ebb70102420a000924' \
--header 'Content-Type: application/json' \
--data-raw '{
"portal":"A9OzNNOV",
"app_id":"gdn3k53qkm",
"touser":["5ly8v1v5g70qxm3j"],
"msgtype":"link",
"msg":{
"content":"",
"url": "https://mp.weixin.qq.com/s?__biz=MzAxMDY5MTc5Mw==&mid=2651322219&idx=1&sn=e1d741ea1aa7eb43bdf1830cc841f40c&chksm=80bf22d5b7c8abc34d54ebe9403cb3de13b5f4238452fe33d69eff57ab8af1ddfeb370d70446&scene=27#wechat_redirect",
"title":"取代房子,这才是未来5年最好的投资!",
"attachmentId":"7821688145847456921"
}
}'
图示: 
curl --location --request POST 'https://open-ushu.hillinsight.tech/cgi/message/send_single?access_token=754cf7a61d6311ebb70102420a000924' \
--header 'Content-Type: application/json' \
--data-raw '{
"portal":"A9OzNNOV",
"app_id":"gdn3k53qkm",
"touser":["5ly8v1v5g70qxm3j"],
"msgtype":"attachment",
"msg":{
"attachmentId":"1086410325910462125"
}
}'
图示: 