积累系统性知识
积聚技术精华
  首页    个人中心    撰写积文    建立课题    订立目标    整理积文    管理课题    管理目标    技能Get    代码积累 
Android- 环信IM即时通讯_RESTAPI(2)
error997 (error997)    2015-05-10 19:11:13      目标    课题
   *****************************************************REST_API 简介*******************************************************
   1.理解OAuth 2.0 :http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
2.理解RESTful架构 :http://www.ruanyifeng.com/blog/2011/09/restful.html
3.RESTful API 设计指南 : http://www.ruanyifeng.com/blog/2014/05/restful_api.html
4.服务器返回码参数表: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
   环信的REST API都是基于json的, 所以在构造_HTTP_ 请求的时候, 需要在_HTTP HEADER_中指明:
   header_name        header_valuedescription
Accept               application/json服务器端返回给客户端的数据类型
Content-Typeapplication/json客户端发到服务器端的是数据类型

切换到: 纯代码  
   
Path : URI  
HTTP Method : GET/POST/PUT/DELETE  
Request Headers : {  
            Content-Type : application/json,  
            Accept: application/json,  
        Authorization : Bearer ${token}  
}  
Request Body : JSON


   Path : URI
HTTP Method : GET/POST/PUT/DELETE
Request Headers : {
         Content-Type : application/json,
         Accept: application/json,
       Authorization : Bearer ${token}
}
Request Body : JSON
   名词解释
org_name企业的唯一标识,开发者在环信开发者管理后台注册账号时填写的企业ID
app_name同一”企业”下”app”唯一标识,开发者在环信开发者管理后台创建应用时填写的”应用名称”
org_admin
开发者在环信开发者管理后台注册时填写的”用户名”.企业管理员拥有对该企业账号下所有资源的操作权限
app_admin应用管理员,具有admin权限的一个特殊IM用户,拥有对该应用下所有资源的操作权限
appkey
 
一个app的唯一标识,规则是 ${org_name}#${app_name}
   *******************************************************用户体系集成*********************************************************

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/token  
HTTP Method : POST  
URL Params : 无  
Request Headers : {“Content-Type”:”application/json”}  
Request Body : {“grant_type”: “client_credentials”,”client_id”: “{app的client_id}”,”client_secret”: “{app的client_secret}”}


   Path : /{org_name}/{app_name}/token
HTTP Method : POST
URL Params : 无
Request Headers : {“Content-Type”:”application/json”}
Request Body : {“grant_type”: “client_credentials”,”client_id”: “{app的client_id}”,”client_secret”: “{app的client_secret}”}
   keyvalue
access_token
token值
expires_in有效时间,秒为单位, 默认是七天,在有效期内是不需要重复获取的
application
当前app的UUID值

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users  
HTTP Method : POST  
URL Params : 无  
Request Headers : {“Content-Type”:”application/json”}  
Request Body : {“username”:”${用户名}”,”password”:”${密码}”, “nickname”:”${昵称值}”}


   Path : /{org_name}/{app_name}/users
HTTP Method : POST
URL Params : 无
Request Headers : {“Content-Type”:”application/json”}
Request Body : {“username”:”${用户名}”,”password”:”${密码}”, “nickname”:”${昵称值}”}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users  
HTTP Method : POST  
URL Params : 无  
Request Headers :   
        {  
        “Content-Type”:”application/json”,  
         ”Authorization”:”Bearer ${token}”  
        }  
Request Body : {“username”:”${用户名}”,”password”:”${密码}”}


   Path : /{org_name}/{app_name}/users
HTTP Method : POST
URL Params : 无
Request Headers : 
      {
      “Content-Type”:”application/json”,
       ”Authorization”:”Bearer ${token}”
      }
Request Body : {“username”:”${用户名}”,”password”:”${密码}”}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users  
HTTP Method : POST  
URL Params : 无  
Request Headers : {“Content-Type”:”application/json”,”Authorization”:”Bearer ${token}”}  
Request Body : [{“username”:”${用户名1}”,”password”:”${密码}”},…,{“username”:”${用户名2}”,”password”:”${密码}”}]


   Path : /{org_name}/{app_name}/users
HTTP Method : POST
URL Params : 无
Request Headers : {“Content-Type”:”application/json”,”Authorization”:”Bearer ${token}”}
Request Body : [{“username”:”${用户名1}”,”password”:”${密码}”},…,{“username”:”${用户名2}”,”password”:”${密码}”}]

切换到: 纯代码  
   
{  
  "action" : "post",  
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",  
  "params" : { },  
  "path" : "/users",  
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",  
  "entities" : [ entitie,entitie,entitie,entitie ],  
  "timestamp" : 1409570811312,  
  "duration" : 802,  
  "organization" : "easemob-demo",  
  "applicationName" : "chatdemoui"  
}


   {
  "action" : "post",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "params" : { },
  "path" : "/users",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",
  "entities" : [ entitie,entitie,entitie,entitie ],
  "timestamp" : 1409570811312,
  "duration" : 802,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}

切换到: 纯代码  
   
{  
    "uuid" : "de86365a-31ca-11e4-aecf-9509b836c0d6",  
    "type" : "user",  
    "created" : 1409570811445,  
    "modified" : 1409570811445,  
    "username" : "u2",  
    "activated" : true  
}entitie


   {
    "uuid" : "de86365a-31ca-11e4-aecf-9509b836c0d6",
    "type" : "user",
    "created" : 1409570811445,
    "modified" : 1409570811445,
    "username" : "u2",
    "activated" : true
}entitie

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users/{username}  
HTTP Method : GET  
Request Headers : {“Authorization”:”Bearer ${token}”}


   Path : /{org_name}/{app_name}/users/{username}
HTTP Method : GET
Request Headers : {“Authorization”:”Bearer ${token}”}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users  
HTTP Method : GET  
//指定条数   
URL Params : limit=20  
//cursor:用户开始索引   
URL Params : limit=20&cursor=LTU2ODc0MzQzOnNmdTlxdF9LRWVPaVFvMWlBZmc4S3c  
  
Request Headers : {“Authorization”:”Bearer ${token}”}


   Path : /{org_name}/{app_name}/users
HTTP Method : GET
//指定条数
URL Params : limit=20
//cursor:用户开始索引
URL Params : limit=20&cursor=LTU2ODc0MzQzOnNmdTlxdF9LRWVPaVFvMWlBZmc4S3c

Request Headers : {“Authorization”:”Bearer ${token}”}

切换到: 纯代码  
   
{  
    "action" : "get",  
    "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",  
    "params" : {  
    "limit" : [ "20" ]  
    },  
    "path" : "/users",  
    "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users?ql=select+*+from+null&limit=20",  
    "entities" : [ entitie,entitie,entitie,entitie ]  
}  
  
{  
    "uuid" : "fff15c10-df37-11e3-843f-e5b88d483c56",  
    "type" : "user",  
    "created" : 1400491736144,  
    "modified" : 1409055655016,  
    "username" : "wjglpgecxu",  
    "activated" : true,  
    "nickname" : "wjglpgecxu",  
    "notifier_name" : "chatdemoui_dev"  
}entitie


   {
    "action" : "get",
    "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
    "params" : {
    "limit" : [ "20" ]
    },
    "path" : "/users",
    "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users?ql=select+*+from+null&limit=20",
    "entities" : [ entitie,entitie,entitie,entitie ]
}

{
    "uuid" : "fff15c10-df37-11e3-843f-e5b88d483c56",
    "type" : "user",
    "created" : 1400491736144,
    "modified" : 1409055655016,
    "username" : "wjglpgecxu",
    "activated" : true,
    "nickname" : "wjglpgecxu",
    "notifier_name" : "chatdemoui_dev"
}entitie

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users/{username}  
HTTP Method : DELETE  
URL 参数 : 无  
Request Headers : {“Authorization”:”Bearer ${token}”}  
Request Body :无


   Path : /{org_name}/{app_name}/users/{username}
HTTP Method : DELETE
URL 参数 : 无
Request Headers : {“Authorization”:”Bearer ${token}”}
Request Body :无

切换到: 纯代码  
   
{  
  "action" : "delete",  
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",  
  "params" : { },  
  "path" : "/users",  
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",  
  "entities" : [ entitie,entitie,entitie,entitie ],  
  "timestamp" : 1409576121910,  
  "duration" : 3330,  
  "organization" : "easemob-demo",  
  "applicationName" : "chatdemoui"  
}  
  
{  
    "uuid" : "628a88ba-dfce-11e3-8cac-51d3cb69b303",  
    "type" : "user",  
    "created" : 1400556326075,  
    "modified" : 1400556326075,  
    "username" : "ywuxvxuir6",  
    "activated" : true  
}entitie


   {
  "action" : "delete",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "params" : { },
  "path" : "/users",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",
  "entities" : [ entitie,entitie,entitie,entitie ],
  "timestamp" : 1409576121910,
  "duration" : 3330,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}

{
    "uuid" : "628a88ba-dfce-11e3-8cac-51d3cb69b303",
    "type" : "user",
    "created" : 1400556326075,
    "modified" : 1400556326075,
    "username" : "ywuxvxuir6",
    "activated" : true
}entitie

切换到: 纯代码  
   
DELETE /{org_name}/{app_name}/users?ql=created > 1409506121910 and created < 1409576121910  
Path : /{org_name}/{app_name}/users  
HTTP Method : DELETE  
URL Params : limit=30  
Request Headers : {“Authorization”:”Bearer ${token}”}


   DELETE /{org_name}/{app_name}/users?ql=created > 1409506121910 and created < 1409576121910
Path : /{org_name}/{app_name}/users
HTTP Method : DELETE
URL Params : limit=30
Request Headers : {“Authorization”:”Bearer ${token}”}

切换到: 纯代码  
   
{  
  "action" : "delete",  
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",  
  "params" : {  
    "limit" : [ "5" ]  
  },  
  "path" : "/users",  
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",  
  "entities" : []  
}


   {
  "action" : "delete",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "params" : {
    "limit" : [ "5" ]
  },
  "path" : "/users",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",
  "entities" : []
}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users/{username}/password  
HTTP Method : PUT  
URL Params : 无  
Request Headers : {“Authorization”:”Bearer ${token}”}  
Request Body : {“newpassword” : “${新密码指定的字符串}”}


   Path : /{org_name}/{app_name}/users/{username}/password
HTTP Method : PUT
URL Params : 无
Request Headers : {“Authorization”:”Bearer ${token}”}
Request Body : {“newpassword” : “${新密码指定的字符串}”}

切换到: 纯代码  
   
{  
  "action" : "set user password",  
  "timestamp" : 1409575962124,  
  "duration" : 326  
}


   {
  "action" : "set user password",
  "timestamp" : 1409575962124,
  "duration" : 326
}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users/{username}  
HTTP Method : PUT  
URL Params : 无  
Request Headers : {“Authorization”:”Bearer ${token}”}  
Request Body : {“nickname” : “${昵称值}”}


   Path : /{org_name}/{app_name}/users/{username}
HTTP Method : PUT
URL Params : 无
Request Headers : {“Authorization”:”Bearer ${token}”}
Request Body : {“nickname” : “${昵称值}”}

切换到: 纯代码  
   
{  
  "action" : "put",  
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",  
  "path" : "/users",  
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",  
  "entities" : [ {  
    "uuid" : "c3b56d5a-7135-11e4-92d2-edab82ae2302",  
    "type" : "user",  
    "created" : 1416543645861,  
    "modified" : 1416550240537,  
    "username" : "jianguo",  
    "activated" : true,  
    "device_token" : "61491f49f3e69cd1d62c5b390e42f4b1cd15bf1a876a487268cfaef9960188ee",  
    "nickname" : "张建国"  
  } ],  
  "timestamp" : 1416550240285,  
  "duration" : 278,  
  "organization" : "easemob-demo",  
  "applicationName" : "chatdemoui"  
}


   {
  "action" : "put",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "path" : "/users",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",
  "entities" : [ {
    "uuid" : "c3b56d5a-7135-11e4-92d2-edab82ae2302",
    "type" : "user",
    "created" : 1416543645861,
    "modified" : 1416550240537,
    "username" : "jianguo",
    "activated" : true,
    "device_token" : "61491f49f3e69cd1d62c5b390e42f4b1cd15bf1a876a487268cfaef9960188ee",
    "nickname" : "张建国"
  } ],
  "timestamp" : 1416550240285,
  "duration" : 278,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}
   *******************************************************好友管理*********************************************************

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users/{owner_username}/contacts/users/{friend_username}  
HTTP Method : POST  
Request Headers : {“Authorization”:”Bearer ${token}”}


   Path : /{org_name}/{app_name}/users/{owner_username}/contacts/users/{friend_username}
HTTP Method : POST
Request Headers : {“Authorization”:”Bearer ${token}”}

切换到: 纯代码  
   
{  
    "action":"post","application":"4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5","params":{},  
    "path":"/users/aa6160da-eb01-11e3-ab09-15edd986e7b7/contacts",  
    "uri":"http://a1.easemob.com/easemob-demo/chatdemoui/users/jliu/contacts/yantao",  
    "entities":[ entitie ],  
    "timestamp":1406086326974,"duration":242,  
    "organization":"easemob-demo",  
    "applicationName":"chatdemoui"  
}


   {
    "action":"post","application":"4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5","params":{},
    "path":"/users/aa6160da-eb01-11e3-ab09-15edd986e7b7/contacts",
    "uri":"http://a1.easemob.com/easemob-demo/chatdemoui/users/jliu/contacts/yantao",
    "entities":[ entitie ],
    "timestamp":1406086326974,"duration":242,
    "organization":"easemob-demo",
    "applicationName":"chatdemoui"
}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users/{owner_username}/contacts/users  
HTTP Method : GET  
Request Headers : {“Authorization”:”Bearer ${token}”}  
  
  
{  
  "action" : "get",  
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",  
  "params" : { },  
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/contacts/users",  
  "entities" : [ ],  
  "data" : [ "88888" ],  
  "timestamp" : 1409737366071,  
  "duration" : 45,  
  "organization" : "easemob-demo",  
  "applicationName" : "chatdemoui"  
}


   Path : /{org_name}/{app_name}/users/{owner_username}/contacts/users
HTTP Method : GET
Request Headers : {“Authorization”:”Bearer ${token}”}


{
  "action" : "get",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "params" : { },
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/contacts/users",
  "entities" : [ ],
  "data" : [ "88888" ],
  "timestamp" : 1409737366071,
  "duration" : 45,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users/{owner_username}/contacts/users/{friend_username}  
HTTP Method : DELETE  
URL Params : 无  
Request Headers : {“Authorization”:”Bearer ${token}”}  
Request Body : 无  
  
  
{  
  "action" : "delete",  
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",  
  "params" : { },  
  "path" : "/users/stliu/contacts",  
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemo/users/stliu/contacts/users/yantao",  
  "entities" : [ entitie ],  
  "timestamp" : 1409739808288,  
  "duration" : 1575,  
  "organization" : "easemob-demo",  
  "applicationName" : "chatdemoui"  
}


   Path : /{org_name}/{app_name}/users/{owner_username}/contacts/users/{friend_username}
HTTP Method : DELETE
URL Params : 无
Request Headers : {“Authorization”:”Bearer ${token}”}
Request Body : 无


{
  "action" : "delete",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "params" : { },
  "path" : "/users/stliu/contacts",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemo/users/stliu/contacts/users/yantao",
  "entities" : [ entitie ],
  "timestamp" : 1409739808288,
  "duration" : 1575,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}
   ***************************************************群组管理*********************************************************

切换到: 纯代码  
   
<pre name="code" class="java">Path : /{org_name}/{app_name}/chatgroups  
HTTP Method : GET  
Request Headers : {“Authorization”:”Bearer ${token}”}


   <pre name="code" class="java">Path : /{org_name}/{app_name}/chatgroups
HTTP Method : GET
Request Headers : {“Authorization”:”Bearer ${token}”}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/users/{username}/joined_chatgroups  
HTTP Method : GET  
Request Headers : {“Authorization”:”Bearer ${token}”}


   Path : /{org_name}/{app_name}/users/{username}/joined_chatgroups
HTTP Method : GET
Request Headers : {“Authorization”:”Bearer ${token}”}

切换到: 纯代码  
   
{  
  ...  
  "entities" : [ ],  
  "data" : [ {  
    "groupid" : "1413193977786197",  
    "groupname" : "kenshingrou"  
  }, {  
    "groupid" : "1413194058403881",  
    "groupname" : "kenshinngr1"  
  } ],  
  "timestamp" : 1413428676499,  
  "duration" : 80  
}


   {
  ...
  "entities" : [ ],
  "data" : [ {
    "groupid" : "1413193977786197",
    "groupname" : "kenshingrou"
  }, {
    "groupid" : "1413194058403881",
    "groupname" : "kenshinngr1"
  } ],
  "timestamp" : 1413428676499,
  "duration" : 80
}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/chatgroups/{group_id1},{group_id2}  
HTTP Method : GET  
Request Headers : {“Authorization”:”Bearer ${token}”}


   Path : /{org_name}/{app_name}/chatgroups/{group_id1},{group_id2}
HTTP Method : GET
Request Headers : {“Authorization”:”Bearer ${token}”}

切换到: 纯代码  
   
{  
  ...  
  "entities" : [ ],  
  "data" : [ {  
    "id" : "1408518613503",  
    "name" : "Jay13800138000",  
    "description" : "",  
    "public" : false,  
    "membersonly" : true,  
    "allowinvites" : false,  
    "maxusers" : 200,  
    "affiliations_count" : 3,  
    "affiliations" : [ {  
      "owner" : "13800138001"  
     }, {  
      "member" : "v3y0kf9arx"  
     }, {  
      "member" : "xc6xrnbzci"  
     } ]  
  } ],  
  ...  
}


   {
  ...
  "entities" : [ ],
  "data" : [ {
    "id" : "1408518613503",
    "name" : "Jay13800138000",
    "description" : "",
    "public" : false,
    "membersonly" : true,
    "allowinvites" : false,
    "maxusers" : 200,
    "affiliations_count" : 3,
    "affiliations" : [ {
      "owner" : "13800138001"
     }, {
      "member" : "v3y0kf9arx"
     }, {
      "member" : "xc6xrnbzci"
     } ]
  } ],
  ...
}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/chatgroups/{group_id}/users  
HTTP Method : GET  
Request Headers : {“Authorization”:”Bearer ${token}”}


   Path : /{org_name}/{app_name}/chatgroups/{group_id}/users
HTTP Method : GET
Request Headers : {“Authorization”:”Bearer ${token}”}

切换到: 纯代码  
   
{  
  ...  
  "entities" : [ ],  
  "data" : [ {  
    "member" : "lidis"  
  }, {  
    "member" : "asdfgh"  
  }, {  
    "owner" : "ruson"  
  } ],  
  "timestamp" : 1413012431449,  
  "duration" : 24  
}


   {
  ...
  "entities" : [ ],
  "data" : [ {
    "member" : "lidis"
  }, {
    "member" : "asdfgh"
  }, {
    "owner" : "ruson"
  } ],
  "timestamp" : 1413012431449,
  "duration" : 24
}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/chatgroups  
HTTP Method : POST  
URL Params : 无  
Request Headers : {“Authorization”:”Bearer ${token}”}  
Request Body :  
{  
    "groupname":"testrestgrp12", //群组名称, 此属性为必须的   
    "desc":"server create group", //群组描述, 此属性为必须的   
    "public":true, //是否是公开群, 此属性为必须的   
    "maxusers":300, //群组成员最大数(包括群主), 值为数值类型,默认值200,此属性为可选的   
    "approval":true, //加入公开群是否需要批准, 没有这个属性的话默认是true, 此属性为可选的   
    "owner":"jma1", //群组的管理员, 此属性为必须的   
    "members":["jma2","jma3"] //群组成员,此属性为可选的,但是如果加了此项,数组元素至少一个   
}


   Path : /{org_name}/{app_name}/chatgroups
HTTP Method : POST
URL Params : 无
Request Headers : {“Authorization”:”Bearer ${token}”}
Request Body :
{
    "groupname":"testrestgrp12", //群组名称, 此属性为必须的
    "desc":"server create group", //群组描述, 此属性为必须的
    "public":true, //是否是公开群, 此属性为必须的
    "maxusers":300, //群组成员最大数(包括群主), 值为数值类型,默认值200,此属性为可选的
    "approval":true, //加入公开群是否需要批准, 没有这个属性的话默认是true, 此属性为可选的
    "owner":"jma1", //群组的管理员, 此属性为必须的
    "members":["jma2","jma3"] //群组成员,此属性为可选的,但是如果加了此项,数组元素至少一个
}

切换到: 纯代码  
   
{  
  "action" : "post",  
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",  
  "params" : { },  
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui",  
  "entities" : [ ],  
  "data" : {  
    "groupid" : "1411527886490154"  
  },  
  "timestamp" : 1411527886457,  
  "duration" : 125,  
  "organization" : "easemob-demo",  
  "applicationName" : "chatdemoui"  
}


   {
  "action" : "post",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "params" : { },
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui",
  "entities" : [ ],
  "data" : {
    "groupid" : "1411527886490154"
  },
  "timestamp" : 1411527886457,
  "duration" : 125,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/chatgroups/{group_id}  
HTTP Method : DELETE  
URL Params : 无  
Request Headers : {“Authorization”:”Bearer ${token}”}  
Request Body :无


   Path : /{org_name}/{app_name}/chatgroups/{group_id}
HTTP Method : DELETE
URL Params : 无
Request Headers : {“Authorization”:”Bearer ${token}”}
Request Body :无

切换到: 纯代码  
   
{  
  "action" : "delete",  
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",  
  "params" : { },  
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui",  
  "entities" : [ ],  
  "data" : {  
    "success" : true,  
    "groupid" : "1411527886490154"  
  },  
  "timestamp" : 1411528112078,  
  "duration" : 15,  
  "organization" : "easemob-demo",  
  "applicationName" : "chatdemoui"  
}


   {
  "action" : "delete",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "params" : { },
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui",
  "entities" : [ ],
  "data" : {
    "success" : true,
    "groupid" : "1411527886490154"
  },
  "timestamp" : 1411528112078,
  "duration" : 15,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/chatgroups/{group_id}/users/{user_primary_key}  
HTTP Method : POST  
URL Params : 无  
Request Headers : {“Authorization”:”Bearer ${token}”}  
Request Body :无


   Path : /{org_name}/{app_name}/chatgroups/{group_id}/users/{user_primary_key}
HTTP Method : POST
URL Params : 无
Request Headers : {“Authorization”:”Bearer ${token}”}
Request Body :无

切换到: 纯代码  
   
{  
  ...  
  "entities" : [ ],  
  "data" : {  
    "action" : "add_member",  
    "result" : true,  
    "groupid" : "1411816013089",  
    "user" : "q4xpsfjfvf"  
  },  
  ...  
}


   {
  ...
  "entities" : [ ],
  "data" : {
    "action" : "add_member",
    "result" : true,
    "groupid" : "1411816013089",
    "user" : "q4xpsfjfvf"
  },
  ...
}

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/chatgroups/{chatgroupid}/users  
HTTP Method : POST  
URL Params : 无  
Request Headers : {“Authorization”:”Bearer ${token}”}  
Request Body :{“usernames”:[“username1”,”username2”]}’ — usernames固定属性,  
                作为json的KEY;username1/username2 要添加到群中的成员用户名,可变


   Path : /{org_name}/{app_name}/chatgroups/{chatgroupid}/users
HTTP Method : POST
URL Params : 无
Request Headers : {“Authorization”:”Bearer ${token}”}
Request Body :{“usernames”:[“username1”,”username2”]}’ — usernames固定属性,
            作为json的KEY;username1/username2 要添加到群中的成员用户名,可变

切换到: 纯代码  
   
Path : /{org_name}/{app_name}/chatgroups/{group_id}/users/{user_primary_key}  
HTTP Method : DELETE  
URL Params : 无  
Request Headers : {“Authorization”:”Bearer ${token}”}  
Request Body :无  
Response 示例:  
{  
  ...  
  "entities" : [ ],  
  "data" : {  
    "action" : "remove_member",  
    "result" : true,  
    "groupid" : "1411816013089",  
    "user" : "q4xpsfjfvf"  
  },  
  ...  
  "organization" : "easemob-demo",  
  "applicationName" : "chatdemoui"  
}


   Path : /{org_name}/{app_name}/chatgroups/{group_id}/users/{user_primary_key}
HTTP Method : DELETE
URL Params : 无
Request Headers : {“Authorization”:”Bearer ${token}”}
Request Body :无
Response 示例:
{
  ...
  "entities" : [ ],
  "data" : {
    "action" : "remove_member",
    "result" : true,
    "groupid" : "1411816013089",
    "user" : "q4xpsfjfvf"
  },
  ...
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}
   ***************************************************消息管理*********************************************************

切换到: 纯代码  
   
{  
    ...  
    "data": {  
        "stliu": "online"  //注意, 这里返回的是用户名和在线状态的键值对, 值为 online 或者 offline   
    },  
    ...  
}


   {
    ...
    "data": {
        "stliu": "online"  //注意, 这里返回的是用户名和在线状态的键值对, 值为 online 或者 offline
    },
    ...
}

切换到: 纯代码  
   
{  
    "target_type" : "users", // users 给用户发消息, chatgroups 给群发消息   
    "target" : ["u1", "u2", "u3"], // 注意这里需要用数组,数组长度建议不大于20, 即使只有一个用户,      
                                   // 也要用数组 ['u1'], 给用户发送时数组元素是用户名,给群组发送时     
                                   // 数组元素是groupid   
    >>发送文本  
    "msg" : {  
        "type" : "txt",  
        "msg" : "hello from rest" //消息内容,(http://developer.easemob.com/docs/emchat/rest/chatmessage.html)里的bodies内容   
        },  
          
    >>发送图片  
    "msg" : {    
        "type" : "img",   // 消息类型   
            "url": "https://a1.easemob.com/easemob-demo/chatdemoui/chatfiles/55f12940-64af-11e4-8a5b-ff2336f03252",  //成功上传文件返回的uuid  
            "filename": "24849.jpg", // 指定一个文件名   
            "secret": "VfEpSmSvEeS7yU8dwa9rAQc-DIL2HhmpujTNfSTsrDt6eNb_" // 成功上传文件后返回的secret   
     },  
      
    >>发送语音  
    "msg" : {     
                "type": "audio",  // 消息类型   
                "url": "https://a1.easemob.com/easemob-demo/chatdemoui/chatfiles/1dfc7f50-55c6-11e4-8a07-7d75b8fb3d42",  //成功上传文件返回的uuid  
                "filename": "messages.amr", // 指定一个文件名   
                "length": 10,  
                "secret": "Hfx_WlXGEeSdDW-SuX2EaZcXDC7ZEig3OgKZye9IzKOwoCjM" // 成功上传文件后返回的secret   
        },  
          
        >>发送视频  
        "msg": { //消息内容   
        "type": "video",// 消息类型   
        "filename": "1418105136313.mp4",// 视频文件名称   
        "thumb": "http://a1.easemob.com/easemob-demo/chatdemoui/chatfiles/67279b20-7f69-11e4-8eee-21d3334b3a97",//成功上传视频缩略图返回的uuid  
        "length": 10,//视频播放长度   
        "secret": "VfEpSmSvEeS7yU8dwa9rAQc-DIL2HhmpujTNfSTsrDt6eNb_",// 成功上传视频文件后返回的secret   
        "file_length": 58103,//视频文件大小   
        "thumb_secret": "ZyebKn9pEeSSfY03ROk7ND24zUf74s7HpPN1oMV-1JxN2O2I",// 成功上传视频缩略图后返回的secret   
        "url": "http://a1.easemob.com/easemob-demo/chatdemoui/chatfiles/671dfe30-7f69-11e4-ba67-8fef0d502f46"//成功上传视频文件返回的uuid  
    },  
      
    >>发送透传  
    "msg":{  //消息内容   
                "type":"cmd",  // 消息类型   
                "action":"action1"  
        },  
          
    "from" : "jma2", //表示这个消息是谁发出来的, 可以没有这个属性, 那么就会显示是admin, 如果有的话, 则会显示是这个用户发出的       
    "ext" : { //扩展属性, 由app自己定义.可以没有这个字段,但是如果有,值不能是“ext:null“这种形式,否则出错   
        "attr1" : "v1",  
        "attr2" : "v2"  
    }      
}


   {
    "target_type" : "users", // users 给用户发消息, chatgroups 给群发消息
    "target" : ["u1", "u2", "u3"], // 注意这里需要用数组,数组长度建议不大于20, 即使只有一个用户,   
                                   // 也要用数组 ['u1'], 给用户发送时数组元素是用户名,给群组发送时  
                                   // 数组元素是groupid
    >>发送文本
    "msg" : {
        "type" : "txt",
        "msg" : "hello from rest" //消息内容,(http://developer.easemob.com/docs/emchat/rest/chatmessage.html)里的bodies内容
        },
        
    >>发送图片
    "msg" : {  
        "type" : "img",   // 消息类型
          "url": "https://a1.easemob.com/easemob-demo/chatdemoui/chatfiles/55f12940-64af-11e4-8a5b-ff2336f03252",  //成功上传文件返回的uuid
          "filename": "24849.jpg", // 指定一个文件名
          "secret": "VfEpSmSvEeS7yU8dwa9rAQc-DIL2HhmpujTNfSTsrDt6eNb_" // 成功上传文件后返回的secret
     },
    
    >>发送语音
    "msg" : {   
            "type": "audio",  // 消息类型
            "url": "https://a1.easemob.com/easemob-demo/chatdemoui/chatfiles/1dfc7f50-55c6-11e4-8a07-7d75b8fb3d42",  //成功上传文件返回的uuid
            "filename": "messages.amr", // 指定一个文件名
            "length": 10,
            "secret": "Hfx_WlXGEeSdDW-SuX2EaZcXDC7ZEig3OgKZye9IzKOwoCjM" // 成功上传文件后返回的secret
      },
      
      >>发送视频
      "msg": { //消息内容
        "type": "video",// 消息类型
        "filename": "1418105136313.mp4",// 视频文件名称
        "thumb": "http://a1.easemob.com/easemob-demo/chatdemoui/chatfiles/67279b20-7f69-11e4-8eee-21d3334b3a97",//成功上传视频缩略图返回的uuid
        "length": 10,//视频播放长度
        "secret": "VfEpSmSvEeS7yU8dwa9rAQc-DIL2HhmpujTNfSTsrDt6eNb_",// 成功上传视频文件后返回的secret
        "file_length": 58103,//视频文件大小
        "thumb_secret": "ZyebKn9pEeSSfY03ROk7ND24zUf74s7HpPN1oMV-1JxN2O2I",// 成功上传视频缩略图后返回的secret
        "url": "http://a1.easemob.com/easemob-demo/chatdemoui/chatfiles/671dfe30-7f69-11e4-ba67-8fef0d502f46"//成功上传视频文件返回的uuid
    },
    
    >>发送透传
    "msg":{  //消息内容
            "type":"cmd",  // 消息类型
            "action":"action1"
      },
        
    "from" : "jma2", //表示这个消息是谁发出来的, 可以没有这个属性, 那么就会显示是admin, 如果有的话, 则会显示是这个用户发出的    
    "ext" : { //扩展属性, 由app自己定义.可以没有这个字段,但是如果有,值不能是“ext:null“这种形式,否则出错
        "attr1" : "v1",
        "attr2" : "v2"
    }    
}

切换到: 纯代码  
   
{  
    ...  
    "data": {  
        "stliu1": "success",  
        "jma3": "success",  
        "stliu": "success",  
        "jma4": "success"  
    },  
    ...  
}


   {
    ...
    "data": {
        "stliu1": "success",
        "jma3": "success",
        "stliu": "success",
        "jma4": "success"
    },
    ...
}
   ****************************************************T I P******************************************************
   
   
   
   
   
   
   
   
   
   
   
   HTTP statuscodeerrorerror_description
400 invalid_grantinvalid username or password
用户名或者密码输入错误
400 organization_application_not_found“Could not find application for easemob-demo/aachatdemoui from URI: easemob-demo/aachatdemoui/users”
找不到aachatdemoui对应的app, 可能是URL写错了
400 illegal_argument“Entity user requires a property named username”
创建用户请求体未提供”username”
400 illegal_argument“password or pin must provided”
创建用户请求体未提供”password”
400 json_parse“Unexpected character (‘=’ (code 61)): was expecting a colon to separate field name and value\n at [Source: java.io.BufferedInputStream@170e3f35; line: 1, column: 23]”
发送请求时请求体不符合标准的JSON格式,服务器无法正确解析
400 illegal_argument“password or pin must provided”
注册用户时json中提供了password但是值未空字符
400 duplicate_unique_property_exists“Application 4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5Entity user requires that property named username be unique, value of dddd exists”
用户名已存在, dddd这个用户名在该app下已经存在
400 illegal_argument“newpassword is required”
修改用户密码的请求体没提供newpassword属性
400 illegal_argument“group member username1 doesn’t exist”
批量添加群组时预加入群组的新成员username不存在
401 unauthorized“registration is not open, please contact the app admin”
app的用户注册模式为授权注册,但是注册用户时请求头没带token
401 auth_bad_access_token“Unable to authenticate due to corrupt access token”
发送请求时使用的token错误, 注意:不是token过期
401 auth_bad_access_token“Unable to authenticate”
无效token, 符合token的格式,但是该token不是接受请求的系统生成的,系统无法识别该token
401 “Unable to authenticate due to expired access token”
token过期
404 service_resource_not_found“Service resource not found”
URL指定的资源不存在
500 no_full_text_index“Entity ‘user’ with property named ‘username’ is not full text indexed. You cannot use the ‘contains’ operand on this field”
username不支持全文索引,不可以对该字段进行contains操作
500 unsupported_service_operation“Service operation not supported”
请求方式不被发送请求的URL支持
500 web_application“javax.ws.rs.WebApplicationException”错误的请求, 
给一个未提供的API发送了

转自 http://blog.csdn.net/qq285016127/article/details/42083043
(+0)技能Get

建议楼主:搜索关键字 |参考其他资源 |回复 |追问
  error997(error997):   个人中心    课题    目标    代码积累