中国互联网办公室·imo运营中心
目录
1 引言 3
1.1 编写目的 3
1.2 读者对象 3
1.3 文档内容 3
1.4 系统说明 3
2 业务流程 4
3 接口说明: 6
4 接入范例 7
说明消息推送系统的业务流程。
需要接入消息推送的第三方,以及消息推送系统的开发,产品人员
消息推送授权申请和接口说明。
1. 目前消息推送仅限于向获得授权的公司中的在线用户推送。
2. 仅限从第三方APP的服务器推送,其公网出口IP需要加入授权列表
3. 推送时需要使用消息接受者的imo账号,因此一般需要第三方系统用户系统和其imo账号建立对应关系(单点登录逐个绑定或批量进行绑定)
1. 接入方发送申请邮件,邮件内容包括要获得授权的公司imo账号列表,接入方服务器公网出口IP
2. imo 开放平台通过接入申请,为接入方发放特定API_KEY(1个32个字节长的字符串)
3. 接入方通过imo开放平台的消息推送API发送消息
1. Sendmsg接口说明
调用方式:http post
调用地址:http://open.imoffice.com:5186/index.php?app=sendmsg
参数:fromcid 推送消息的组织id
参数:fromuid 推送消息的用户id
参数:appcid 申请appkey时使用的cid
参数:appuid 申请appkey时使用的uid
参数:pushtype 消息类型(1在线消息,2离线消息)
参数:users, 消息接收者列表
参数:msg,消息内容,格式见后续说明
参数:appkey,imo发放的接入方标识,取值,32byte字符串
参数:sender,发送者标识,发送方任意填写,仅用于跟踪,取值,英文字母字符串
参数:chart , 提交信息编码设置,当poptype为1时此参数选填,当poptype为2时此参数必填。此参数只能设为UTF8。
参数:poptype, 弹出形式,当为1时以消息框弹出,当为2时以单人聊天框弹出。
返回值:{“result”:”success”, “info”:”ok”}, 失败时取值请参考错误码列表
users参数数组格式说明:
json数组 [{"cid":43,"uid":1},{"cid":43,"uid":2},{"cid":43,"uid":3}],数组长度不超过100,即每次调用最多只能发送给100个人
msg参数数组格式说明:
{"ver":"1.0",
"subject":"消息",
"title":"您有一条新消息",
"img":"http:\/\/www.imoffice.com\/test.png",
"desc":"内容描述",
"lnk":"http;\/\/www.imoffice.com"
}
参数名 |
说明 |
备注 |
Ver |
版本号 |
目前写死1.0 |
Subject (暂不提供) |
推送应用名称 |
utf8编码,不超过15个字,不填写时默认为“消息”,此项目请暂不要使用,还未开放。 |
title |
推送的标题 |
unicodelittle编码,不超过15个字,不填写时默认为“您有一条新消息”,且需要先进行base64_encode,再url_encode编码。当poptype参数为2时,此项参数的值会变为单人聊天框的标题。 |
img |
指向图片的url |
图片大小为70*70px,图片较大时会压缩到这个尺寸,如果没有指定图片,则显示默认图片, 此内容需要urlencode |
desc |
推送消息的内容描述 |
unicodelittle编码,可输入2-120个字,页面无法显示完全时会出现tips,为空时取标题内容, 且需要先进行base64_encode,再url_encode编码 |
lnk |
点击推送消息打开的web url |
此内容需要urlencode。 |
返回结果 |
说明 |
{"result":"false", "info":"titlelen is error"} |
标题不符合指定长度 |
{"result":"false", "info":"desclen is error"} |
内容不符合指定长度 |
{"result":"false",info":"appkey is error"} |
appcid,appuid, appkey不合法 |
{"result":"false","info":"params error"} |
fromcid,fromuid,appcid,appuid不正确 |
{"result":"success","info":"ok"} |
通信成功 |
{"result":"false", "info":"More than the users limit"} |
超过来了单次允许发送的上线 |
{"result":"false", "info":"Contains the unauthorized company"} |
包含了未授权的公司cid |
{"result":"false", "info":" access is dined from your ip"} |
来源IP不合法 |
{"result":"false","info":"Message structure is errore"} |
数据结构不正确 |
{"result":"false","msg":"invalid fromcid or fromuid param"} |
fromcid或fromuid参数填写不正确 |
{"result":"false","msg":"invalid poptype param"} |
poptype的值是不合法的 |
2. 消息实例:
消息框模式
单人聊天框模式
使用测试页面发送消息:
|
方式 |
地址接口 |
参数 |
返回数据 |
发送消息 |
POST |
http://open.imoffice.com:5186/index.php?app=sendmsg p?app=sendmsg |
fromcid,发送者cid appkey,应用appkey {"ver":"1.0", "title":"\u6d4b\u8bd5\u6d88\u606f","img":"http:\/\/www.imoffice.com\/test.png","desc":"\u8fd9\u662f\u6d4b\u8bd5\u6d88\u606f","lnk":"http;\/\/www.imoffice.com"}) |
{"result":"false",info":"appkeyis error"} |
title和desc的内容要求从utf8转unicodelittle编码的例子:
php:
$title = '你有一条新消息';
$unicodelittle_title = iconv('UTF-8','unicodelittle',$title);
$base64_title = Base64_encode($unicodelittle_title);
echo $base64_title;
输出结果为:YE8JZwBOYWewZYhtb2A=
.Net:
string a = '你有一条新消息';
byte[] b = System.Text.Encoding.Unicode.GetBytes(a);
a = Convert.ToBase64String(b);
Console.Write(a);
输出结果为:YE8JZwBOYWewZYhtb2A=
chart参数:
作用:在发送消息时可不对title 和 desc进行unicode 和BASE64 编码转换。
方式:POST
参数:chart=UTF8(注意大小写,且页面必须为UTF8编码)
Msg内容只需urlencode
样例如下:
urlencode('{"ver":"1.0","title":"你有一条新消息","img":"","desc":"<测试>","lnk":"http://www.baidu.com"}');
结果:
%7B%22ver%22%3A%221.0%22%2C%22title%22%3A%22%E4%BD%A0%E6%9C%89%E4%B8%80%E6%9D%A1%E6%96%B0%E6%B6%88%E6%81%AF%22%2C%22img%22%3A%22%22%2C%22desc%22%3A%22%3C%E6%B5%8B%E8%AF%95%3E%22%2C%22lnk%22%3A%22http%3A%2F%2Fwww.baidu.com%22%7D
整个POST内容:
users=[{"cid":1000,"uid":1234}]&fromcid=1000&fromuid=1234&appkey=079c02f4af9f8eb305f02d80b19a0f72&appuid=1234&appcid=1000&pushtype=2&chart=UTF8&msg=%7B%22ver%22%3A%221.0%22%2C%22title%22%3A%22%E4%BD%A0%E6%9C%89%E4%B8%80%E6%9D%A1%E6%96%B0%E6%B6%88%E6%81%AF%22%2C%22img%22%3A%22%22%2C%22desc%22%3A%22%3C%E6%B5%8B%E8%AF%95%3E%22%2C%22lnk%22%3A%22http%3A%2F%2Fwww.baidu.com%22%7D
当poptype参数的值为2时,chart参数必须为2。
http://www.yxxx.net.cn 西安云翔软件信息科技有限公司