EMAP消息发送开发案例


一、消息发送开发案例

  • 1)消息接口总述

调用服务总线的restful接口进行消息发送,可以发送邮件、短信、微信、门户站内信、移动站内信等。

每次最多发送500人,超过500人,请多次调用。

注意:

1、发送邮件时,如果不指定发件人(即mailSender、mailSenderPw)则使用系统邮箱作为发件箱,否则使用指定发发件箱。因邮箱服务器对发送次数、内容都可能有限制(如:163邮箱服务器限制就比较严格),且部分邮箱需要做额外的授权才能发送,所以发送邮件时消息平台限制必须使用校内的邮箱服务器(如南京理工大学发送邮件时,发件箱必须是如:[email protected])。

2、注意:对于以下基于http协议的接口,请不要通过前端js直接调用,因为会泄露token信息。appId、serviceId和accessToken信息作为参数传递,restful的放在http头,soap的放在soap头。另外基于安全与通用性的考虑,消息平台的restful接口没有用http method来表示操作方式,定义http method都为post,但是所有的get、delete等操作都遵循restful的约束规范。另外,content-type 都为 application/json,String 编码为utf-8。

3、本案例只针对邮件的消息发送,短信、站内信、微信等消息发送方式,清根据注释中相关提示,进行参数修改即可。

  • 2)开发流程

第一步、申请消息接口

可以到云端(http://www.campusphere.cn/appcenter/login)注册时申请API接口(云端注册请参看《开发者指导手册_V1.0》第三章);以下是发送接口,勾选后,提交后可进入审核阶段。

第二步、邮件发送审核

app名称与appId至[email protected]进行接口审核。(人工审核)

第三步、收到审核通过邮件

crowd回邮件给申请者。

第四步、开发者,在云端重新接入“工程项目部”

第五步、获取开发时接口密钥

申请者登录smps.wisedu.com,进入已申请服务,打开消息发送接口的详情,获取接口地址、appId、accessToken三个参数

即appId#app版本号作为账号与密码登录,例如appid : 4770139910088743 版本:1.0.0,账号密码为,账号:4770139910088743#1.0.0 密码:4770139910088743#1.0.0

消息接口服务名称:

message_pocket_web-mp-restful-message-sendProxyService

第六步、java代码调用接口

ROOT/emap.properties 配置如下参数:

            api.url =[http://172.16.7.105:80](http://172.16.7.105/)

            appId =4770139910088743\#1.0.0

            accessToken =42b94ae3b91862be9af67642ec0f38a1

            schoolCode =999000

消息发送demo工程代码下载地址:链接:

http://pan.baidu.com/s/1i5jr5xN

密码: qtgn

下载后直接解压到workspace ,启动tomcat后即可访问。

第七步、测试

请求地址 http://localhost:8080/emap/sys/xxjkdemo/message/send.do

返回结果:

邮箱中收到测试邮件

  • 3)附件

  • 请求数据格式

参数 必须 说明
schoolCode 调用接口的学校对应的学校Id
sign 请求签名:(accessToken + schoolCode + 第一个receivers 的userID )的MD5值
appId 应用的appId,创建应用时,在应用管理平台生成,用来区分消息的来源
senderId 消息发送者的用户ID,当消息为人发送而非系统发送的时候需要此字段
senderName 消息发送者的姓名
mailSender 邮件发件人,当sendType为3邮件时才有效,为空则发件人为系统默认。另外邮件发件人必须为系统设置的邮件服务器的用户,并开启了SMTP服务,每个学校对应一个邮件服务器,公司测试环境统一用**@wisedu.com
mailSenderPw 邮件发件人密码
subject 消息主题,发送短信时参数为空,其他消息类型必填
content 消息的容
pcUrl pc端点击消息时的链接url
mobileUrl 手机端点击消息时的链接url
urlDesc Url链接的描述,如“查看详情”“去处理”
sendType 消息发送类型,发送方式: 0.PC门户通知和移动校园同时发送(通常为此种方式) 1.只发送PC门户 2.只发送移动校园 3邮件 4短信 5微信
sendNow 发送方式,是否立即发送,0:定时发送 1:立即发送 默认1
sendTime 选择定时发送模式时,填写消息发送的时间,10位时间戳,定时发送模式时必须
tagId 消息标签,通用标签对应关系详见下面的tagId对应关系表,如果要获取所有请调用接口10
attachments 附件id,调用附件上传接口后返回的id,暂时只有邮件和微信支持附件,上传附件接口为18,对于微信图片大小限制为<2M 普通文件的限制为<20M(注:目前附件上传API未开放)
receivers 消息接收人,receiver json数组,reciever的结构见下面的Receiver数据说明
wxSendType 当发送类型为5时此字段才会生效,此字段值为必须为:text(文本消息)、file(文件)、video(视频)、voice(声音)、image(图像)、news(新闻)、mpnews(图文)中之一。(注:因附件上传API未开放,发送类型为5时,wxSendType = “tex”)

2.receiver数据说明

参数 必须 说明
userId 收件人的userId(职工号或学号)
mobile 手机号(当消息类型为短信时必填)
email 邮箱地址(当消息类型为邮件时必填)
flag 邮件收件人标识( 0正常发送 1密送 2抄送)

3.tagId对应关系表

tagId tagName
1012 其他服务
1013 学工
1014 科研服务
1016 人事
1017 迎新服务
1020 公共服务
9001 违纪处分
9002 政工队伍
9003 学生离校
9004 迎新系统
9005 奖学金
9006 助学金
9007 待办
  • 4)发送到移动校园客户端和PC门户

请求Json 示例:

{
    "schoolCode": "wisedu",
    "sign": "d27aa6ce34d93e8d08f1b1e19dd671aa",
    "appId": "",
    "senderId": "T2015012",
"senderName": "张三",
    "mailSender": "",
    "mailSenderPw": "",
    "subject": "这是消息的主题",
    "content": "这是消息的内容",
    "pcUrl": "http://www.baidu.com",
    "mobileUrl": "http://www.baidu.com",
    "urlDesc": "查看详情",
    "sendType": "0",
    "sendNow": "true",
    "sendTime": "",
    "tagCode": "100001",
    "attachments": [],
    "receivers": [
        {
            "userId": "01112311",
            "mobile": "",
            "email": "",
            "flag": ""
        },
        {
            "userId": "01112311",
            "mobile": "",
            "email": "",
            "flag": ""
        }
    ]
}

receivers 中的userId(职工号或学号) 必须在腾讯信鸽服务器端绑定(移动校园客户端在登陆的时候调用腾讯信鸽进行绑定,此接口的调用方无需关心)。

  • 5)发送短信Json 示例
{
    "schoolCode": "wisedu",
    "sign": "d27aa6ce34d93e8d08f1b1e19dd671aa",
    "appId": "",
    "senderId": "T2015012",
"senderName": "张三",
    "mailSender": "",
    "mailSenderPw": "",
    "subject": "这是消息的主题",
    "content": "这是消息的内容",
    "pcUrl": "http://www.baidu.com",
    "mobileUrl": "http://www.baidu.com",
    "urlDesc": "查看详情",
    "sendType": "4",
    "sendNow": "true",
    "sendTime": "",
    "tagCode": "100001",
    "attachments": [],
    "receivers": [
        {
            "userId": "01112311",
            "mobile": "15689245635",
            "email": "",
            "flag": ""
        },
        {
            "userId": "01112311",
            "mobile": "15689245635",
            "email": "",
            "flag": ""
        }
    ]
}

receivers 中的userId必填,按手机号码发送,其他参数选填。

  • 6)发送微信请求Json 示例
{
    "schoolCode": "wisedu",
    "sign": "d27aa6ce34d93e8d08f1b1e19dd671aa",
    "appId": "",
    "senderId": "T2015012",
"senderName": "张三",
    "mailSender": "",
    "mailSenderPw": "",
    "subject": "这是消息的主题",
    "content": "这是消息的内容",
    "pcUrl": "http://www.baidu.com",
    "mobileUrl": "http://www.baidu.com",
    "urlDesc": "查看详情",
    "sendType": "5",
    "sendNow": "false",
    "sendTime": "1452863680",
    "tagCode": "100001",
    "attachments": [],
    "receivers": [
        {
            "userId": "01112311",
            "mobile": "",
            "email": "",
            "flag": ""
        },
        {
            "userId": "01112311",
            "mobile": "",
            "email": "",
            "flag": ""
        }
    ]
}

receivers 中的userId (学号和职工号)默认已在微信企业号中通过微信官方管控台绑定,暂未提供微信绑定接口,开发时所用企业号及绑定方式详见下文“微信企业号测试说明”。发送时采用userId发送,如果接收者的userId未绑定到微信企业号,则该接收者不会收到来自企业号的消息。

  • 7)发送邮件请求Json 示例
{
    "schoolCode": "wisedu",
    "sign": "d27aa6ce34d93e8d08f1b1e19dd671aa",
    "appId": "",
    "senderId": "",
"senderName": "",
    "mailSender": "[email protected]",
    "mailSenderPw": "123456",
    "subject": "这是消息的主题",
    "content": "这是消息的内容",
    "pcUrl": "http://www.baidu.com",
    "mobileUrl": "http://www.baidu.com",
    "urlDesc": "查看详情",
    "sendType": "4",
    "sendNow": "true",
    "sendTime": "1452863680",
    "tagCode": "100001",
    "attachments": [],
    "receivers": [
        {
            "userId": "01112311",
            "mobile": "",
            "email": "[email protected]",
            "flag": "0"
        },
        {
            "userId": "01112311",
            "mobile": "",
            "email": "[email protected]",
            "flag": "1"
        }
    ]
}

receivers 中的userId必填,flag必填,邮箱必填。 按提供的邮箱和flag发送。

  • 8)返回数据格式
参数 说明
status 返回状态码
msg 状态码说明(成功或失败以及失败原因)

返回Json 示例:

{
    "status": 200,
"msg": "success"
}

results matching ""

    No results matching ""