http://www.blogjava.net/ebecket 返还网
随笔-140  评论-11  文章-131  trackbacks-0

UAP Server 接口手册 v0.3

出自ND APP Wiki

跳转到: 导航, 搜索

目录

[隐藏]

概述

测试用户

  • userid:1,用户名密码:user1/user1ssss
  • userid:2,用户名密码:user2/user1ssss

测试工具

http://192.168.94.19/uaps/tools/apitest.php

统一响应

  • HTTP响应码
    • 200 服务端响应成功
    • 204 服务端响应成功,不过没有要返回的数据,通常用于 GET 的情况下
    • 400 输入不合法,提交的数据不是 json 格式时,返回此状态码
    • 401 没有请求的权限(除了请求自己的信息有权限外,其他都需要使用apikey[相当管理员权限])
    • 405 请求的方法不存在
    • 501 接口未实现

格式

  • 返回内容中的时间格式统一为 YYYY-MM-DD hh:mm:ss

接口列表

认证

用户登录

  • 请求方式:POST
  • 请求资源:/login(用https协议)
  • 请求对象:
{
"appid":"应用ID 必须",
"username":"用户名 必须",
"password":"密码 必须"
}
  • 响应代码:
    • 200 登录成功
    • 404 用户不存在/用户名为空/密码为空/应用ID不存在
    • 403 认证失败/密码错误
    • 423 用户登录限制(密码错误3次就会受限,测试机不会)
  • 响应内容:
{"uid":"用户ID","sid":"Session ID"}

用户登出

  • 请求方式:POST
  • 请求资源:/logout/{uid}?sid={sid}(用https协议)
    • uid 必填,用户ID
    • sid 必填,Session ID
  • 请求对象:NULL
  • 响应代码:
    • 200 成功登出
  • 响应内容:NULL

SESSION 验证

  • 请求方式:GET
  • 请求资源:/checksession?sid={sid}(用https协议)
    • sid 必填,Session ID
  • 请求对象:NULL
  • 响应代码:
    • 200 成功验证
  • 响应内容:
{
"uid":"用户ID",
}
    • 401 验证失败
  • 响应内容:false

用户

用户注册

  • 请求方式:POST
  • 请求资源:/user(用https协议)
  • 请求对象:
{
"username":"用户名,4-70字符串,必须",
"password":"密码,7-12字符串必须",
"realname":"真实姓名,2-4个汉字,必须",
"idcard":"身份证号码,15或18位,可选",
"mobile":"联系电话,可选",
"telephone":"固话,可选",
"nickname":"昵称,1-20个字符,可选,唯一",
"email":"邮箱",
"sex":"性别 0保密,1男,2女",
"qq":"QQ号码",
"msn":"MSN帐号",
"birthyear":"出生年份",
"birthmonth":"出生月份",
"birthday":"出生日",
"blood":"血型",
"marry":"婚否",
"birthprovince":"出生省份,省份代码,如350000代表福建省(身份证的前6位)",
"birthcity":"出生城市,城市代码,如350100代码福州市(身份证的前6位)",
"resideprovince":"目前所在省,省份代码,如350000代表福建省(身份证的前6位)",
"residecity":"所在城市,城市代码,如350100代码福州市(身份证的前6位)"
}
  • 响应代码:
    • 201 创建成功
    • 400 用户名或密码为空
    • 403 身份证号码不合法/邮箱、MSN格式错误/手机号码格式错误
    • 409 该用户已存在/昵称已存在
  • 响应内容:
{
"uid":"新用户ID",
"username":"用户名",
"sid":"session id"
}

用户修改

  • 请求方式:PUT
  • 请求资源:/user/{uid}
    • uid 必填,用户ID
  • 请求对象:
{
"realname":"真实姓名,2-4个汉字,可选",
"idcard":"身份证号码,15或18位,可选",
"mobile":"联系电话,可选",
"telephone":"固话,可选",
"nickname":"昵称,1-20个字符,可选,唯一",
"email":"邮箱",
"sex":"性别 0保密,1男,2女",
"qq":"QQ号码",
"msn":"MSN帐号",
"birthyear":"出生年份",
"birthmonth":"出生月份",
"birthday":"出生日",
"blood":"血型",
"marry":"婚否",
"birthprovince":"出生省份,省份代码,如350000代表福建省(身份证的前6位)",
"birthcity":"出生城市,城市代码,如350100代码福州市(身份证的前6位)",
"resideprovince":"目前所在省,省份代码,如350000代表福建省(身份证的前6位)",
"residecity":"所在城市,城市代码,如350100代码福州市(身份证的前6位)"
}
  • 响应代码
    • 200 修改成功
    • 409 昵称已存在
    • 404 请求的用户不存在
    • 403 身份证号不合法/邮箱、MSN格式错误
  • 响应内容:NULL

获取用户

  • 请求方式:GET
  • 请求资源:/user/{uid}
    • uid 必填,用户ID
  • 请求对象:NULL
  • 响应代码:
    • 200 成功
    • 404 用户不存在
  • 响应内容:
    • 获取自己的信息
{
"uid":"用户ID",
"imid":"91U ID",
"username":"用户名",
"nickname":"昵称",
"regip":"注册时IP",
"regdate":"注册时间",
"lastloginip":"最后登录IP",
"lastlogintime":"最后登录时间",
"email":"邮箱",
"emailcheck":"邮箱是否已验证",
"realname":"真实姓名",
"idcard":"身份证号码",
"vip":"VIP星级",
"mobile":"移动电话",
"telephone":"固话",
"sex":"性别 0保密,1男,2女",
"qq":"QQ号码",
"msn":"MSN帐号",
"birthyear":"出生年份",
"birthmonth":"出生月份",
"birthday":"出生日",
"blood":"血型",
"marry":"婚否",
"birthprovince":"出生省份",
"birthcity":"出生城市",
"resideprovince":"目前所在省",
"residecity":"所在城市"
}
    • 获取好友的信息(双向好友)
{
"uid":"用户ID",
"imid":"91U ID",
"username":"用户名",
"nickname":"昵称",
"regdate":"注册时间",
"email":"邮箱",
"emailcheck":"邮箱是否已验证",
"vip":"VIP星级",
"sex":"性别 0保密,1男,2女",
"msn":"MSN帐号",
"birthyear":"出生年份",
"birthmonth":"出生月份",
"birthday":"出生日",
"blood":"血型",
"birthprovince":"出生省份",
"birthcity":"出生城市",
"resideprovince":"目前所在省",
"residecity":"所在城市"
}


    • 获取陌生人的信息
{
"uid":"用户ID",
"imid":"91U ID",
"username":"用户名",
"nickname":"昵称",
"sex":"性别 0保密,1男,2女",
"resideprovince":"目前所在省",
"residecity":"所在城市"
}

用户查询

  • 请求方式:GET
  • 请求资源:
   /user?nickname={nickname}(nickname必填) 或
/user?username={username}(username必填) 或
/user?email={email}(email必填) 或
/user?mobile={mobile}(mobile必填) 或
/user?imid={imid}(imid必填) 或
/user?realname={realname}[&city={residecity}][&sex={sex}][&birthyear={birthyear}](realname必填)
    • 以上中括号[]表示可选
  • 请求对象:NULL
  • 响应代码:
    • 200 查询成功
    • 404 昵称不存在/昵称为空/用户名不能存在/用户名为空
  • 响应内容
{
"0":{"uid":"用户ID",
"imid":"91UID",
"username":"用户名",
"nickname":"呢称"
}
}

好友

双向和关注好友上限200人

新增好友

  • 请求方式 POST
  • 请求资源 /friend/{uid}/{fid}
    • uid 必填,用户ID
    • fid 必填,要添加的好友ID
  • 请求数据
{
"comment":"备注内容,默认为空,可选(最大255个字符)",
"attention":"是否为关注好友,值0或1,默认为0,可选",
"gids":"用户分组ID,多个ID用半角的“,”隔开,默认为0,可选"
}
  • 响应代码
    • 200 添加成功
    • 404 用户不存在/好友不存在/用户组不存在
    • 403 不能添加自己为好友
    • 409 已经添加该用户为好友/好友已经到上限
  • 响应内容
    • 成功:内容为空
    • 失败:
{"msg":"错误消息"}

修改好友

  • 请求方式 PUT
  • 请求资源 /friend/{uid}/{fid}
    • uid 必填,用户ID
    • fid 必填,要修改的好友ID
  • 请求数据
{
"comment":"备注内容,默认为空,可选(最大255个字符)",
"attention":"是否为关注好友,值0或1,默认为0,可选",
"gids":"用户分组ID,多个ID用半角的“,”隔开,默认为0,可选"
}
  • 响应代码
    • 200 修改成功
    • 404 用户不存在/好友不存在/修改失败/用户组不存在
    • 403 不能加自己为好友
  • 响应内容
    • 成功:内容为空
    • 失败:
{"msg":"错误消息"}

删除好友

  • 请求方式 DELETE
  • 请求资源 /friend/{uid}/{fid}
    • uid 必填,用户ID
    • fid 必填,可删除的好友ID
  • 请求数据
    • NULL
  • 响应代码
    • 200 删除成功
    • 404 要删除的用户不存在
  • 响应内容
    • 成功:内容为空
    • 失败:
{"msg":"错误消息"}

获取好友列表

  • 请求方式 GET
  • 请求资源 /friend/{uid}?start=0&pos=100&direction=0
    • uid 必填,用户ID
    • start 可选,从第几条开始获取,默认为 0
    • pos 可选,获取多少条,默认值为100,最大为100
    • direction 可选,默认为 0,1为单向好友 2为双向好友 3为关注的好友
  • 请求数据
    • NULL
  • 响应代码
    • 200 获取成功
    • 404 用户不存在
  • 响应内容
    • 成功:
{
"total":"好友总数",
"start":"开始记录数",
"pos":"返回记录数",
"direction":"好友类型"
"data":{
"0":{
"uid":"用户ID",
"fid":"好友ID",
"direction":"好友类型",
"comment":"备注",
"group":{
"0":{"gid":"分组ID","grouptitle":"分组名"},
...
},
"username":"好友用户名",
"nickname":"好友昵称",
"realname":"好友真实姓名"
}
},
...
}
    • 失败:
{"msg":"错误消息"}

好友分组

  • 单个用户好友分组上限 20 个

新增好友分组

  • 请求方式 POST
  • 请求资源 /friend/group/{uid}
    • uid 必填,用户ID
  • 请求数据
{ "grouptitle":"好友分组名称(最大20字节)" }
  • 响应代码
    • 200 添加成功
    • 404 用户不存在
    • 403 分组名不允许为空
    • 406 添加好友分组失败
    • 409 分组已存在/分组已经到上限
  • 响应内容
    • 成功:NULL
    • 失败:
{"msg":"错误消息"}

修改好友分组

  • 请求方式 PUT
  • 请求资源 /friend/group/{uid}/{gid}
    • uid 必填,用户ID
    • gid 必填,要修改的分组ID
  • 请求数据
{ "grouptitle":"好友分组新名称(最大20字节)" }
  • 响应代码
    • 200 添加成功
    • 404 用户不存在/好友分组不存在
    • 403 分组名不允许为空
  • 响应内容
    • 成功:NULL
    • 失败:
{"msg":"错误消息"}

获取好友分组列表

  • 请求方式 GET
  • 请求资源 /friend/group/{uid}
    • uid 必填,用户ID
  • 请求数据:NULL
  • 响应代码
    • 200 添加成功
    • 404 用户不存在
  • 响应内容
    • 成功:
{"total":"分组总数",
"data":
{
"0":{
"gid":"分组ID",
"uid":"用户ID",
"grouptitle":"分组名称",
"data":{
"0":{"friendid":"好友ID","username":"好友用户名","nickname":"好友昵称","realname":"好友真实姓名"},
...
}
}
...
}
}
    • 失败:
{"msg":"错误消息"}

获取好友分组

  • 请求方式 GET
  • 请求资源 /friend/group/{uid}/{gid}
    • uid 必填,用户ID
    • gid 必填,好友分组ID
  • 请求数据:NULL
  • 响应代码
    • 200 添加成功
    • 404 用户不存在/好友分组不存在
  • 响应内容
    • 成功:
{
"gid":"分组ID",
"uid":"用户ID",
"grouptitle":"分组名称",
"data":{
"0":{"friendid":"好友ID","username":"好友用户名","nickname":"好友昵称","realname":"好友真实姓名"},
...
}
}
    • 失败:
{"msg":"错误消息"}

删除好友分组

  • 请求方式 DELETE
  • 请求资源 /friend/group/{uid}/{gid}
    • uid 必填,用户ID
    • gid 必填,要删除的分组ID
  • 请求数据:NULL
  • 响应代码
    • 200 删除成功
    • 404 用户不存在/好友分组不存在
  • 响应内容
    • 成功:NULL
    • 失败:
{"msg":"错误消息"}

黑名单

  • 黑名单上限 200 个

新增黑名单

  • 请求方式 POST
  • 请求资源 /blacklist/{uid}/{bid}
    • uid 必填,用户ID
    • bid 必填,被添加用户ID
  • 请求数据
{ "comment":"备注内容(最大255字节)" }
  • 响应代码
    • 200 添加成功
    • 404 用户不存在/被添加用户不存在
    • 403 不能添加自己到黑名单
    • 409 黑名单人数已达到上限
  • 响应内容
    • 成功:NULL
    • 失败:
{"msg":"错误消息"}

删除黑名单

  • 请求方式 DELETE
  • 请求资源 /blacklist/{uid}/{bid}
    • uid 必填,用户ID
    • bid 必填,被删除用户ID(黑名单用户ID)
  • 请求数据
    • NULL
  • 响应代码
    • 200 删除成功
    • 404 要删除的用户不存在
  • 响应内容
    • 成功:内容为空
    • 失败:
{"msg":"错误消息"}

获取黑名单

  • 请求方式 GET
  • 请求资源 /blacklist/{uid}
    • uid 用户ID
  • 请求数据
    • NULL
  • 响应代码
    • 200 获取成功
    • 204 黑名单为空、无记录
    • 404 用户不存在
  • 响应内容
    • 成功:
{
"data":{
"0":{
"uid":"用户ID",
"friendid":"黑名单用户(好友)ID",
"comment":"备注",
"username":"用户登录名",
"nickname":"昵称",
"realname":"真实姓名"
}
...
}
}
    • 失败:
{"msg":"错误消息"}

短消息

短消息列表

  • 请求方式 GET
  • 请求资源 pm/{uid}?start=0&pos=100&folder=inbox&type={global}
    • uid: 必填,用户ID
    • start: 可选,起始记录,默认为0
    • pos: 可选,偏移量,即所取记录数,默认为100,最大为100
    • folder: 可选,短消息类型, inbox=收件箱, outbox=发件箱, 默认为inbox
    • type: 可选,当值type=global时,为获取公共短消息列表
  • 请求数据: NULL
  • 响应代码:
    • 200 成功
    • 204 请求成功,不过没有任何要返回的消息
    • 400 非法请求
    • 404 用户不存在
  • 响应内容:
{
"total":"总笔数",
"folder":"请求类型",
"start":"起始条数",
"pos":"偏移条数",
"data":{
"0":{
"pmid":"短消息ID",
"msgfrom":"发送人用户名",
"msgfromid":"发送人ID",
"msgtoid":"接收人ID",
"folder":"短消息类型",
"new":"标识位",
"subject":"标题",
"dateline":"时间戳",
"message":"内容",
"fromappid":"应用ID"
},
...
}
}

获取指定短消息

  • 请求方式 GET
  • 请求资源 pm/{uid}/{pid}
    • uid: 必填,用户ID
    • pid: 必填,要获取的短消息ID
  • 请求数据: NULL
  • 响应代码:
    • 200 成功
    • 204 短消息不存在
    • 403 没权限
    • 404 用户不存在
  • 响应内容:
{
"pmid":"短消息ID",
"msgfrom":"发送人用户名",
"msgfromid":"发送人ID",
"msgtoid":"接收人ID",
"folder":"短消息类型",
"new":"标识位",
"subject":"标题",
"dateline":"时间戳",
"message":"内容",
"fromappid":"应用ID"
}

删除短消息

  • 请求方式 DELETE
  • 请求资源 pm/{uid}/{pid}
    • uid 必填,用户ID
    • pid 必填,要删除的短消息ID
  • 请求数据: NULL
  • 响应代码:
    • 200 成功
    • 204 短消息不存在
    • 403 没权限删除
    • 404 用户不存在
  • 响应内容: NULL

发送新短消息

  • 请求方式 POST
  • 请求资源 pm/{uid}/{tid}
    • uid: 必填,用户ID
    • tid: 必填,接收用户ID
  • 请求数据:
{
"subject":"标题(最大75字节)",
"message":"内容",
"fromappid":"应用ID"
}
  • 响应代码:
    • 200 成功
    • 404 用户不存在
    • 403 给自己发送短消息
    • 409 标题或内容为空
  • 响应内容:
{
"pid":"短消息ID"
}

修改短消息状态

  • 请求方式 PUT
  • 请求资源 pm/{uid}/{pid}
    • uid: 必填,用户ID
    • pid: 必填,短消息ID
  • 请求数据:
{"status": "1或0"}
  • 响应代码:
    • 200 成功
    • 204 短消息不存在
    • 403 没权限
    • 404 用户不存在
  • 响应内容: NULL

新短消息数

  • 请求方式 GET
  • 请求资源 pm/new/{uid}
    • uid 必填,用户ID
  • 请求数据: NULL
  • 响应代码:
    • 200 成功
    • 204 没有新短消息
    • 404 请求的用户不存在
  • 响应内容:
    • 成功
{
"uid":"用户ID",
"count":"新短消息数"
}
    • 失败
{
"msg":"返回信息"
}

发送公共短消息

  • 请求方式 POST
  • 请求资源 pm?type=global
    • type=global 为必填,需要 APIKEY 授权
  • 请求数据:
{
"subject":"标题(最大75字节)",
"message":"内容",
"fromappid":"应用ID"
}
  • 响应代码:
    • 200 成功
    • 403 无权限
    • 409 标题或内容为空
  • 响应内容:
    • 成功
{
"pid":"短消息ID"
}
    • 失败
{
"msg":"错误信息"
}

事件

获取用户事件

  • 请求方式 GET
  • 请求资源 /feed/{uid}?start=0&pos=100&format=json
    • uid: 必填,查看指定用户 ID 的事件列表,uid 为 0 时获取所有事件 (需要 APIKEY 权限)
    • start: 可选,从第几条开始取,默认为 0
    • pos: 可选,取多少条事件,默认为 100,最大为 100
    • format: 可选,返回的列表格式,默认为 json 格式
      • html: 返回 html 格式,服务器端渲染后返回
      • json: 返回 json 格式,用于 web 应用时,可以通过浏览器 DOM 渲染
  • 请求数据:
    • 如果要同时获取多个用户的事件列表,请将多个用户ID以逗号分隔传值,最多允许同时获取 200 个用户的事件 (需要 APIKEY 权限)
 GET /feed/1,2,3,4
  • 响应代码:
    • 200 请求成功
    • 204 请求成功,不过没有任何要返回的事件
    • 404 请求的用户不存在
    • 403 请求过程中发生错误,具体错误信息见返回消息
  • 响应内容:
成功
{
"start": "起始条数",
"pos": "偏移条数",
"format": "返回的标题和内容数据类型,json 或 html",
"count": "返回的事件条数",
"data": {
"0": {
"feedid": "事件ID",
"appid": "应用ID",
"typeid": "事件类型",
"uid": "事件发起的用户ID (获取所有事件,或多个用户事件时才有值)",
"username": "事件发起的用户名 (获取所有事件,或多个用户事件时才有值)",
"title": "事件标题",
"body": "事件内容",
"dateline": "事件发生的时间(UNIX时间戳)",
"extra": "附加数据,请求添加事件接口的时候,输入的数据原样返回",
},
...
}
}
失败
{"msg": "错误消息"}

获取好友事件

  • 请求方式 GET
  • 请求资源 /feed/friend/{uid}?start=0&pos=100&format=json
    • uid: 必填,查看指定用户 ID 的所有好友事件列表
    • start: 可选,从第几条开始取,默认为 0
    • pos: 可选,取多少条事件,默认为 100,最大为 100
    • format: 可选,返回的列表格式,默认为 json 格式
      • html: 返回数据中的 title 和 body 为解析后的 html 格式,服务器端解析后返回
      • json: 返回数据中的 title 和 body 为 json 格式,用于 web 应用时,可以通过浏览器动态解析用
  • 请求数据: NULL
  • 响应代码:
    • 200 请求成功
    • 204 请求成功,不过没有任何要返回的事件
    • 404 请求的用户不存在
    • 403 请求过程中发生错误,具体错误信息见返回消息
  • 响应内容:
    • 成功
{
"start": "起始条数",
"pos": "偏移条数",
"format": "返回的标题和内容数据类型,json 或 html",
"count": "返回的事件条数",
"data": {
"0": {
"feedid": "事件ID",
"appid": "发起事件的应用ID",
"typeid": "事件类型",
"title": "事件主题",
"body": "事件内容",
"dateline": "事件发生的时间(UNIX时间戳)",
"extra": "附加数据,请求添加事件接口的时候,输入的数据原样返回"
},
...
}
}
    • 失败
{"msg": "错误消息"}


获取应用事件

  • 该方法需要 APIKEY 权限
  • 请求方式 GET
  • 请求资源 /feed/apps/{appid}?start=0&pos=100&format=json&exclude=0&dateline=0
    • appid: 必填,查看指定应用 ID 的事件(注:exclude为1时为 排除模式
    • start: 可选,从第几条开始取,默认为 0
    • pos: 可选,取多少条事件,默认为 100,最大为 500
    • format: 可选,返回的列表格式,默认为 json 格式
      • html: 返回数据中的 title 和 body 为解析后的 html 格式,服务器端解析后返回
      • json: 返回数据中的 title 和 body 为 json 格式,用于 web ajax 应用时,可以通过浏览器动态解析用
    • exclude: 可选,默认为0,为1的时候,请求的应用ID为排除模式
    • dateline: 可选,时间戳格式,默认为 0,取最新的事件,如果有指定的话,则只返回该时间之后的事件
  • 请求数据:
    • 如果要同时获取多个应用的事件列表,请将多个应用ID以逗号分隔传值,最多允许同时获取 100 个应用的事件
 GET /feed/apps/1,2,3,4
  • 响应代码:
    • 200 请求成功
    • 204 请求成功,不过没有任何要返回的事件
    • 404 请求的应用不存在
    • 403 请求过程中发生错误,具体错误信息见返回消息
  • 响应内容:
    • 成功
{
"start": "起始条数",
"pos": "偏移条数",
"format": "返回的标题和内容数据类型,json 或 html",
"count": "返回的事件条数",
"data": {
"0": {
"feedid": "事件ID",
"appid": "发起事件的应用ID",
"typeid": "事件类型",
"uid": "事件发起的用户ID",
"username": "事件发起的用户名",
"title": "事件主题",
"body": "事件内容",
"dateline": "事件发生的时间(UNIX时间戳)",
"extra": "附加数据,请求添加事件接口的时候,输入的数据原样返回"
},
...
}
}
    • 失败
{"msg": "错误消息"}

新事件/添加事件

  • 请求方式 POST
  • 请求资源 /feed/{uid}
    • uid 必填,事件的发起用户ID
  • 请求数据
{
"typeid": "必填,新事件类型ID,仅允许在系统事件分类表中存在的类型",
"title": "必填,事件标题数据,json格式",
"body": "可选,事件内容数据,json格式",
"appid": "可选, 应用ID",
"extra": "可选,附加数据,获取的时候会原样返回"
}
  • 响应代码:
    • 200 事件创建成功
    • 403 请求的格式不合法
    • 404 请求的用户不存在
    • 406 找不到请求的事件分类ID,或应用ID不存在,具体参考错误信息
    • 500 事件创建失败
    • 成功: NULL
    • 失败
{"msg": "错误消息"}

获取事件分类

  • 该方法需要 APIKEY 权限
  • 请求方式 GET
  • 请求资源 /feed/type/{typeid}?start=0&pos=100&appid=0
    • typeid: 可选,要获取的分类ID。可同时获取多个分类ID,请求的时候用逗号隔开即可。为空时获取系统所有分类列表。
    • start: 可选,要获取的分类列表起始条数,默认为 0
    • pos: 可选,要获取的分类列表条数,默认为 100,最大为 100
    • appid: 可选,只获取与 appid 相关的事件分类,默认为 0,获取所有应用的分类
  • 响应代码:
    • 200 获取成功
    • 204 没有要返回的数据
成功
  • 单条返回内容
{
"typeid":"分类ID",
"typename":"分类名称",
"appid":"所属应用ID",
"icon":"分类图标",
"title_tpl":"分类标题模板",
"body_tpl":"分类内容模板"
}
  • 列表返回内容
{
"start":"起始条数""pos":"偏移条数",
"count": "返回的记录数",
"data": {
"0": {
"typeid":"分类ID",
"typename":"分类名称",
"appid":"所属应用ID",
"icon":"分类图标",
"title_tpl":"分类标题模板",
"body_tpl":"分类内容模板"
}
...
}
}
}
失败
{"msg": "错误消息"}

群组

获取群组信息

  • 请求方式 GET
  • 请求资源 /group?paramtype=xxx&paramvalue=xxx[&start=xxx&pos=xxxx]
    • paramtye 必填,查询的类型(1-根据用户id查找;2-根据群id查找;3-根据群名查找;4-根据群类型查找;5-根据群创建者查找)
    • paramvalue 必填,paramvalue对应的参数
    • start 选填 分页查找的起始数,默认是1,从第一条记录开始查找。
    • pos 选填 分页查找的条数,默认是30。
  • 请求数据
    • NULL
  • 响应代码
    • 200 获取成功
    • 403 没有权限访问
    • 404 用户不存在 或者群组不存在
    • 405 参数错误
  • 响应内容
  • 成功
{
"total":"总的群组数",
"data":{
"0":{
"gid":"群组ID",
"gname":"群组名",
"membermaxnum":"群组最大数",
"membernum":"现有人数",
"joinperm":"加入权限(0-不需要审批;1-需要管理员审批;2-添加人需要是管理员;3-不允许添加)",
"viewperm":"浏览权限(0-所有人都可以浏览;1-群组成员可以浏览;2-不允许浏览"),
"close":"锁定(0-状态是开放的;1-状态锁定,除了创建者,其他人不可以做任何操作)",
"notice":"群组公告",
"introduction":"群组简介",
"classid":"群组类型(从1开始,暂时到4)",
"areascode":"群组地域编号(参见编号表,350000之类的字符串)",
"createtime":"创建时间",
"creatorid":"创建者id",
"gimage":"群图标(超链接)"
},
"1":{
........
},
......
}
}
  • 失败
{"msg":"错误消息"}

修改群组信息

  • 请求方式 PUT
  • 请求资源 /group/{gid}
    • gid 必填,要修改的群组ID
  • 请求数据
{
"gname":"群组名(可选)",
"joinperm":"加入权限(0-不需要审批;1-需要管理员审批;2-添加人需要是管理员;3-不允许添加)(可选)",
"viewperm":"浏览权限(0-所有人都可以浏览;1-群组成员可以浏览;2-不允许浏览)(可选)",
"close":"锁定(0-状态是开放的;1-状态锁定,除了创建者,其他人不可以做任何操作)(可选)",
"notice":"群组公告(可选)",
"introduction":"群组简介(可选)",
"classid":"群组类型(可选,从1开始,暂时到4)",
"areascode":"群组地域编号(参见编号表,350000之类的字符串)(可选)",
"gimage":"群图标(可选,超链接)"
}
  • 响应代码
    • 200 修改成功
    • 403 没有权限
    • 404 用户不存在 或者群组不存在
    • 405 请求参数错误
    • 500 服务器错误
  • 响应内容
  • 成功
  • NULL
  • 失败
{"msg":"错误消息"}

创建群组

  • 请求方式 POST
  • 请求资源 /group
  • 请求数据
{
"gname":"群组名",
"membermaxnum":"群组最大数",
"joinperm":"加入权限(0-不需要审批;1-需要管理员审批;2-添加人需要是管理员;3-不允许添加)",
"viewperm":"浏览权限(0-所有人都可以浏览;1-群组成员可以浏览;2-不允许浏览"),
"introduction":"群组简介",
"classid":"群组类型",
"areascode":"群组地域编号(参见编号表)(选填)",
"gimage":"群图标(选填)"
}
  • 响应代码
    • 201 创建成功
    • 404 用户不存在
    • 405 请求参数错误
    • 500 服务器错误sql执行出错
  • 响应内容
  • 成功
{
"gid":"返回的创建成功的群组ID"
}
  • 失败
{"msg":"错误消息"}

删除群组

  • 请求方式 DELETE
  • 请求资源 /group/{gid}
    • gid 必填,要删除群组ID
  • 请求数据
    • NULL
  • 响应代码
    • 200 删除成功
    • 403 不是创建者,没有权限删除
    • 404 群组不存在
    • 405 请求参数错误
    • 500 服务器错误sql执行出错
  • 响应内容
  • 成功
  • NULL
  • 失败
{"msg":"错误消息"}

群成员管理

  • 每个群的人数上限是200 个

新增群组成员

  • 请求方式 POST
  • 请求资源 /group/member/{gid}
    • gid 必填,群组ID
  • 请求数据
{
"uid":"所要添加的群组成员的uid"
}
  • 响应代码
    • 200 新增成功
    • 404 用户不存在或者群组不存在
    • 403 要添加的用户已经存在于群组中,不允许重复添加 或者 用户没有权限添加 或者 群组不允许添加新成员
    • 405 请求参数错误
    • 409 分组已经到上限
  • 响应内容
  • 成功
NULL
  • 失败
{"msg":"错误消息"}

获取群组成员

  • 请求方式 GET
  • 请求资源 /group/member/{gid}[?start=xxx&pos=xxx]
    • gid 必填,群组ID
    • start 选填 获取的成员列表的起始计数基点,默认是1,从第一条开始查找
    • pos 选填 要获取的成员数,默认是30
  • 请求数据
    • NULL
  • 响应代码
    • 200 获取成功
    • 404 群组不存在
    • 403 没有权限
    • 405 请求参数错误
    • 500 执行失败
  • 响应内容
  • 成功
{"total":"总数",
"data":{
"0":{
"uid":"用户ID""username":"用户名",
"grade": "权限"
}
.........
}
}
  • 失败:
{"msg":"错误消息"}

修改群组成员信息

  • 请求方式 PUT
  • 请求资源 /group/member/{gid}/{uid}
    • gid 必填,群组ID
    • uid 必填,要修改用户ID
  • 请求数据
{
"grade":"权限"
}
**群权限有4-1-用户被邀请加入,但是还没有经过受邀用户验证通过;0-用户申请加入,但是还没有被管理员验证通过
1-群组成员;2-管理员;3-群拥有者
**这里的修改权限也可以理解为用户确认接收邀请
**或者管理员批准加入
**或者设置管理员
**或者转让群
  • 响应代码
    • 200 添加成功
    • 403 没有权限做成修改
    • 404 用户不存在或者群组不存在或者要修改的成员不在群组中
    • 405 请求参数错误
    • 500 执行失败
  • 响应内容
  • 成功
NULL
  • 失败:
{"msg":"错误消息"}

删除群组成员信息

  • 请求方式 DELETE
  • 请求资源 /group/member/{gid}/{uid}
    • uid 必填,要删除用户ID
    • gid 必填,群组ID
  • 请求数据
    • NULL
  • 响应代码
    • 200 删除成功
    • 403 用户没有权限删除别人或者群拥有者不能删除自己
    • 404 用户不存在或者群组不存在或者要修改的成员不在群里
    • 405 请求参数错误
    • 500 执行失败
  • 响应内容
  • 成功:
NULL
  • 失败:
{"msg":"错误消息"}

头像

获取头像地址

  • 请求方式 GET
  • 请求资源 /avatar/{uid}?size=middle
    • uid: 必填,要获取头像地址的用户 ID
    • size: 可选,要获取的头像尺寸,可以有以下几种尺寸,默认为 middle
      • small: 小尺寸,48*48 像素
      • middle: 中等尺寸, 120*120 像素
      • big: 大尺寸,长边为 200 像素
  • 请求数据: NULL
  • 响应代码:
    • 200 获取成功
    • 204 获取成功,如果用户没有上传头像,返回系统默认头像
    • 404 请求的用户不存在
  • 响应内容:
成功
{"uid": "用户ID", "url": "获取到的头像地址(http开头的网址)"}
失败
{"msg": "错误消息"}

修改头像

  • 请求方式 PUT
  • 请求资源 /avatar/{uid}
    • uid: 必填,要修改头像的用户 ID,修改头像的时候,只需要传递大头像的数据,中等头像和小头像会自动生成
  • 请求数据:
{"data": "必填,经过 base64 编码后的头像图片数据(最大200K)"}
  • 响应代码:
    • 200 修改成功
    • 404 请求的用户不存在
    • 413 发送的图片数据超过了服务器允许的大小
    • 415 发送的图片数据不合法
    • 500 服务器错误,详见错误消息
  • 响应内容:
成功
NULL
失败
{"msg": "错误消息"}

删除头像/还原默认头像

  • 请求方式: DELETE
  • 请求资源: /avatar/{uid}
    • uid: 必填,要删除头像的用户ID
  • 请求数据: NULL
  • 响应代码:
    • 200 删除成功
    • 404 请求的用户不存在
    • 500 删除失败
  • 响应内容:
成功
NULL
失败
{"msg": "错误消息"}

附加说明

事件模板

  • 事件的模板目前没有提供接口添加和修改,需要到 UAP Server 后台添加及修改
  • 模板目前只支持赋值语法和循环语法

拿以下数据为例:

{
"username":"user1",
"array": {
"0": {
"item1": "item0-1",
"item2": "item0-2"
},
"1": {
"item1": "item1-1",
"item2": "item1-2"
}
}

赋值语法

<h1>hello, {username}</h1>

解析出的 html 为:

<h1>hello, user1</h1>

循环语法

<ul>
{foreach array as var}
<li>{var[item1]}, {var[item2]} </li>
{endforeach}
</ul>

解析出的 html 为:

<ul>
<li>item0-1, item0-2</li>
<li>item101, item1-2</li>
</ul>

DEMO

文档版本历史

参考条目

posted on 2009-11-06 21:05 becket_zheng 阅读(1553) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: