用户体系集成


数据结构

环信作为一个聊天通道,只需要提供环信 ID 和密码就够了。

名称 字段名 数据类型 描述
环信 ID username String 环信 ID 是环信用户的唯一标识,在 AppKey 的范围内唯一
用户密码 password String 用户登录环信使用的密码

名词解释

当您申请了 AppKey 后,会得到一个 xxxx#xxxx 格式的字符串,这个就是您的 AppKey,下文中用到的:

  • org_name 对应#前面部分
  • app_name 对应#后面部分

环信 ID 规则

当 APP 和环信集成的时候,需要把 APP 系统内的已有用户和新注册的用户和环信集成,为每个已有用户创建一个环信的账号(环信 ID),并且 APP 有新用户注册的时候,需要同步的在环信中注册。

在注册环信账户的时候,需要注意环信 ID 的规则:

  • 使用英文字母和(或)数字的组合
  • 不能使用中文
  • 不能使用 email 地址
  • 不能使用 UUID
  • 用户ID的长度在230字节以内
  • 中间不能有空格或者井号(#)等特殊字符
  • 允许的用户名正则 “[a-zA-Z0-9_-.]*”(a~z大小写字母/数字/下划线/横线/英文句号),其他都不允许 如果是大写字母会自动转成小写
  • 不区分大小写。系统忽略大小写,认为 AA、Aa、aa、aA 都是一样的。如果系统已经存在了环信 ID 为 AA 的用户,再试图使用 aa 作为环信 ID 注册新用户,系统返回用户名重复,以此类推。但是请注意:环信 ID 在数据上的表现形式还是用户最初注册的形式,注册时候使用的大写就保存大写,是小写就保存小写。即:使用 AA 注册,环信保存的 ID 就是 AA;使用 Aa 注册,环信保存的 ID 就是 Aa,以此类推。

另:本文档中可能会交错使用“环信 ID”和“环信用户名”两个术语,但是请注意,这里两个的意思是一样的。

因为一个用户的环信 ID 和他的在 APP 中的用户名并不需要一致,只需要有一个明确的对应关系。例如,用户名是 stliu@apache.org,当这个用户登录到 APP 的时候,可以登录成功之后,再登录环信的服务器,所以这时候,只需要能够从 stliu@apache.org 推导出这个用户的环信 ID 即可。

注意:以下所有 API 均需要 org 管理员或 APP 管理员权限才能访问。

强烈建议保护好 org 管理员,APP 管理员的用户名和密码以及 APP 的 client_id 和 client_secret,尽量只在 APP 的服务器后台对环信用户做增删改查的管理,包括新用户注册。为了您的信息安全,请一定不要将 org 管理员或 APP 管理员的用户名和密码写死在手机客户端中,因为手机 APP 很容易被反编译,从而导致别人获取到您的管理员账号和密码,导致数据泄露。

获取 APP 管理员 Token

环信提供的 REST API 需要权限才能访问,权限通过发送 HTTP 请求时携带 token 来体现,下面描述获取 token 的方式。说明:API 描述的时候使用到的 {APP 的 client_id} 之类的这种参数需要替换成具体的值。

重要提醒:获取 token 时服务器会返回 token 有效期,具体值参考接口返回的 expires_in 字段值。由于网络延迟等原因,系统不保证 token 在此值表示的有效期内绝对有效,如果发现 token 使用异常请重新获取新的 token,比如 http response code 返回 401。另外,请不要频繁向服务器发送获取 token 的请求,同一账号发送此请求超过一定频率会被服务器封号,切记,切记!!

使用 APP 的 client_id 和 client_secret 获取授权管理员 token

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

client_id 和 client_secret 可以在环信管理后台的 APP 详情页面看到。

  • 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}”}
  • Response Body:
Key Value
access_token token 值
expires_in token 有效时间,以秒为单位,在有效期内不需要重复获取
application 当前 APP 的 UUID 值

curl 示例:

curl -X POST "https://a1.easemob.com/easemob-demo/chatdemoui/token" -d '{"grant_type":"client_credentials","client_id":"YXA6wDs-MARqEeSO0VcBzaqg11","client_secret":"YXA6JOMWlLap_YbI_ucz77j-4-mI0dd"}'

Response 示例:

{
  "access_token":"YWMtWY779DgJEeS2h9OR7fw4QgAAAUmO4Qukwd9cfJSpkWHiOa7MCSk0MrkVIco",
  "expires_in":5184000,
  "application":"c03b3e30-046a-11e4-8ed1-5701cdaaa0e4"
}

IM 用户管理

注册 IM 用户[单个]

URL 指定的 org 和 APP 中创建一个新的用户,分两种模式:开放注册和授权注册。

  • “开放注册”模式:注册环信账号时,不用携带管理员身份认证信息;
  • “授权注册”模式:注册环信账号时,必须携带管理员身份认证信息。推荐使用“授权注册”,这样可以防止某些已经获取了注册 URL 和知晓注册流程的人恶意向服务器大量注册垃圾用户。

注意:以下 API 中提到的 ${token} 是个变量,使用时需要替换成通过 APP 的 client_id 和 client_secret 获取到的 token。

开放注册

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

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

注:创建用户时,username 和 password 是必须的,nickname 是可选的,这个 nickname 用于 iOS 推送。如果要在创建用户时设置 nickname,请求 body 是:{“username”:”jliu”,”password”:”123456”, “nickname”:”建国”} 这种形式,下面的示例不包含 nickname。批量注册时同此理。

  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:400(用户已存在、用户名或密码为空、用户名不合法[见用户名规则])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X POST -i "https://a1.easemob.com/easemob-demo/chatdemoui/users" -d '{"username":"jliu","password":"123456"}'

Response 示例:

{
    "action" : "post",
    "application" : "a2e433a0-ab1a-11e2-a134-85fca932f094",
    "params" : { },
    "path" : "/users",
    "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",
    "entities" : [ {
    	"uuid" : "7f90f7ca-bb24-11e2-b2d0-6d8e359945e4",
    	"type" : "user",
    	"created" : 1368377620796,
    	"modified" : 1368377620796,
    	"username" : "jliu",
	"activated" : true
    } ],
    "timestamp" : 1368377620793,
    "duration" : 125,
    "organization" : "easemob-demo",
    "applicationName" : "chatdemo"
}

授权注册

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users
  • HTTP Method: POST
  • URL Params: 无
  • Request Headers: {“Content-Type”:”application/json”,”Authorization”:”Bearer ${token}”}
  • Request Body: {“username”:”${用户名}”,”password”:”${密码}”}
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:400(用户已存在、用户名或密码为空、用户名不合法[见用户名规则])、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X POST -H "Authorization: Bearer YWMt39RfMMOqEeKYE_GW7tu81AAAAT71lGijyjG4VUIC2AwZGzUjVbPp_4qRD5k" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users" -d '{"username":"jliu","password":"123456"}'

Response 示例:

{
	"action" : "post",
	"application" : "a2e433a0-ab1a-11e2-a134-85fca932f094",
	"params" : { },
	"path" : "/users",
	"uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",
	"entities" : [ {
		"uuid" : "7f90f7ca-bb24-11e2-b2d0-6d8e359945e4",
		"type" : "user",
		"created" : 1368377620796,
		"modified" : 1368377620796,
		"username" : "jliu",
		"activated" : true
		}
  	} ],
  	"timestamp" : 1368377620793,
  	"duration" : 125,
  	"organization" : "easemob-demo",
  	"applicationName" : "chatdemo"
}

注册 IM 用户[批量]

每次调用接口时,注册用户数量有最大限制,详见接口限流说明

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • 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”:”${密码}”}]
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:400(用户已存在、用户名或密码为空、用户名不合法[见用户名规则])、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X POST -H "Authorization: Bearer YWMtP_8IisA-EeK-a5cNq4Jt3QAAAT7fI10IbPuKdRxUTjA9CNiZMnQIgk0LEUE" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users" -d '[{"username":"u1", "password":"p1"}, {"username":"u2", "password":"p2"}]'

Response 示例:

{
  "action" : "post",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "params" : { },
  "path" : "/users",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",
  "entities" : [ {
    "uuid" : "de73238a-31ca-11e4-bdc9-9fdda213fcaa",
    "type" : "user",
    "created" : 1409570811320,
    "modified" : 1409570811320,
    "username" : "u1",
    "activated" : true
  }, {
    "uuid" : "de86365a-31ca-11e4-aecf-9509b836c0d6",
    "type" : "user",
    "created" : 1409570811445,
    "modified" : 1409570811445,
    "username" : "u2",
    "activated" : true
  } ],
  "timestamp" : 1409570811312,
  "duration" : 802,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}

获取 IM 用户[单个]

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{username}
  • HTTP Method: GET
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:404(用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X GET -H "Authorization: Bearer YWMtSozP9jHNEeSQegV9EK5eAQAAAUlmBR2bTGr-GP2xNh8GhUCdKViBFgtox3M" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users/ywuxvxuir6"

Response 示例:

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

获取 IM 用户[批量]

该接口默认返回最早创建的10个用户,如果需要指定获取数量,需加上参数 limit=N,N 为数量值。关于分页:如果 DB 中的数量大于 N,返回 JSON 会携带一个字段“cursor”,我们把它叫做”游标”,该游标可理解为结果集的指针,值是变化的。往下取数据的时候带着游标,就可以获取到下一页的值。如果还有下一页,返回值里依然还有这个字段,直到没有这个字段,说明已经到最后一页。cursor的意义在于数据(真)分页。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

不分页

  • Path: /{org_name}/{app_name}/users
  • HTTP Method: GET
  • URL Params: limit=20
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X GET -H "Authorization: Bearer YWMtP_8IisA-EeK-a5cNq4Jt3QAAAT7fI10IbPuKdRxUTjA9CNiZMnQIgk0LEUE" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users?limit=20"

Response 示例:

{
    "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" : [ {
    "uuid" : "fff15c10-df37-11e3-843f-e5b88d483c56",
    "type" : "user",
    "created" : 1400491736144,
    "modified" : 1409055655016,
    "username" : "wjglpgecxu",
    "activated" : true,
    "nickname" : "wjglpgecxu",
    "notifier_name" : "chatdemoui_dev"
  }, {
    "uuid" : "4cca8760-df3c-11e3-8712-9f7483b2df95",
    "type" : "user",
    "created" : 1400493583061,
    "modified" : 1400493583061,
    "username" : "pfs5afofrf",
    "activated" : true
  }, {
    "uuid" : "5918fb7a-df3f-11e3-94d1-1f977e72d55c",
    "type" : "user",
    "created" : 1400494892199,
    "modified" : 1407465728550,
    "username" : "igm8dl8m2e",
    "activated" : true,
    "nickname" : "sadsadsa",
    "notification_display_style" : 0,
    "notification_no_disturbing" : false
  }, {
    "uuid" : "ee6e5a3a-df3f-11e3-bbe9-d3a806493d4a",
    "type" : "user",
    "created" : 1400495142739,
    "modified" : 1400495142739,
    "username" : "lgqieuevag",
    "activated" : true
  }, {
    "uuid" : "6d3ba2ea-df41-11e3-b304-eb2e9192a84a",
    "type" : "user",
    "created" : 1400495784974,
    "modified" : 1400495784974,
    "username" : "quqx6qjmb2",
    "activated" : true
  }, {
    "uuid" : "51b663ba-df42-11e3-8470-cd9881131147",
    "type" : "user",
    "created" : 1400496168299,
    "modified" : 1400496168299,
    "username" : "y0fchl0ps9",
    "activated" : true
  }, {
    "uuid" : "b8b1c32a-df42-11e3-b375-53147ac0d738",
    "type" : "user",
    "created" : 1400496341074,
    "modified" : 1400496341074,
    "username" : "v3y0kf9arx",
    "activated" : true
  }, {
    "uuid" : "8cf86e4a-df61-11e3-8a70-25cc7e73257e",
    "type" : "user",
    "created" : 1400509582116,
    "modified" : 1400509582116,
    "username" : "kapzkr9rro",
    "activated" : true
  }, {
    "uuid" : "a11dca4a-df62-11e3-8551-493bea6a0997",
    "type" : "user",
    "created" : 1400510045412,
    "modified" : 1400510045412,
    "username" : "vkpvscnkzn",
    "activated" : true
  }, {
    "uuid" : "860169a4-df64-11e3-aaae-6bc8d50bc307",
    "type" : "user",
    "created" : 1400510858921,
    "modified" : 1400510858921,
    "username" : "6tkecmjtzn",
    "activated" : true
  }, {
    "uuid" : "1ed6bffa-df68-11e3-80f0-33f2237fa6e0",
    "type" : "user",
    "created" : 1400512403823,
    "modified" : 1400512403823,
    "username" : "xc6xrnbzci",
    "activated" : true
  }, {
    "uuid" : "5472a84a-df68-11e3-b0b9-735c1b1db9a1",
    "type" : "user",
    "created" : 1400512493764,
    "modified" : 1400512493764,
    "username" : "vrhfk5lxsz",
    "activated" : true
  }, {
    "uuid" : "79b3db1a-dfbd-11e3-9c5d-3be5e57070a5",
    "type" : "user",
    "created" : 1400549063489,
    "modified" : 1400549063489,
    "username" : "qmlu5szkbm",
    "activated" : true
  }, {
    "uuid" : "3a2416ea-dfc2-11e3-a3e8-238b964488ee",
    "type" : "user",
    "created" : 1400551104334,
    "modified" : 1400551104334,
    "username" : "6pxxbfcnxu",
    "activated" : true
  }, {
    "uuid" : "65f6cf1a-dfc2-11e3-9dad-2929901f1b97",
    "type" : "user",
    "created" : 1400551177857,
    "modified" : 1400551177857,
    "username" : "xffslraxae",
    "activated" : true
  }, {
    "uuid" : "2631911a-dfc9-11e3-803d-23343cadc4ed",
    "type" : "user",
    "created" : 1400554077345,
    "modified" : 1400554077345,
    "username" : "pfxfc9ggkz",
    "activated" : true
  }, {
    "uuid" : "4295acaa-dfca-11e3-9bf1-5fd8df7f7659",
    "type" : "user",
    "created" : 1400554554474,
    "modified" : 1400554554474,
    "username" : "pksaxc6pao",
    "activated" : true
  }, {
    "uuid" : "8c76072a-dfca-11e3-acc7-7dbd7c3dd494",
    "type" : "user",
    "created" : 1400554678418,
    "modified" : 1400554678418,
    "username" : "s1yqttgtya",
    "activated" : true
  }, {
    "uuid" : "93d710ea-dfca-11e3-a6e8-4f903c0b10fb",
    "type" : "user",
    "created" : 1400554690798,
    "modified" : 1400554690798,
    "username" : "qihp1et8t4",
    "activated" : true
  }, {
    "uuid" : "b1fbbdaa-dfca-11e3-a242-8d6201f83c2b",
    "type" : "user",
    "created" : 1400554741370,
    "modified" : 1400554741370,
    "username" : "0vwy72min6",
    "activated" : true
  } ],
    "timestamp" : 1409571908388,
    "duration" : 747,
    "organization" : "easemob-demo",
    "applicationName" : "chatdemoui",
    "cursor" : "LTU2ODc0MzQzOnNmdTlxdF9LRWVPaVFvMWlBZmc4S3c",
    "count" : 20
   }

分页

  • Path: /{org_name}/{app_name}/users
  • HTTP Method: GET
  • URL Params: limit=20&cursor=LTU2ODc0MzQzOnNmdTlxdF9LRWVPaVFvMWlBZmc4S3c
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。

curl 示例:

curl -X GET -H "Authorization: Bearer YWMtSozP9jHNEeSQegV9EKeAQAAAUlmBR2bTGr-GP2xNh8GhUCdKViBFgtox3M" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users?limit=20&cursor=LTU2ODc0MzQzOnNmdTlxdF9LRWVPaVFvMWlBZmc4S3c"

Response 示例:

{
    "action" : "get",
    "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
    "params" : {
    "limit" : [ "20" ],
    "cursor" : [ "LTU2ODc0MzQzOnNmdTlxdF9LRWVPaVFvMWlBZmc4S3c" ]
   },
    "path" : "/users",
    "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users?ql=select+*+from+null&limit=20",
    "entities" : [ {
    "uuid" : "db8b63aa-dfca-11e3-b938-0337d3f77124",
    "type" : "user",
    "created" : 1400554811098,
    "modified" : 1400554811098,
    "username" : "an9hmj9js2",
    "activated" : true
   }, {
    "uuid" : "e4fab3fa-dfca-11e3-a4ce-59804f43b0c8",
    "type" : "user",
    "created" : 1400554826927,
    "modified" : 1400554826927,
    "username" : "3qwepp6xkg",
    "activated" : true
   }, {
    "uuid" : "f844e7aa-dfca-11e3-9eb4-3d526f9ecfeb",
    "type" : "user",
    "created" : 1400554859290,
    "modified" : 1400554859290,
    "username" : "ce41dtafer",
    "activated" : true
   }, {
    "uuid" : "fc4f4c5a-dfca-11e3-aaf8-239a98c53960",
    "type" : "user",
    "created" : 1400554866069,
    "modified" : 1400554866069,
    "username" : "2ewcgkhhxf",
    "activated" : true
   }, {
    "uuid" : "0005ebba-dfcb-11e3-9704-f734eb21dbc4",
    "type" : "user",
    "created" : 1400554872299,
    "modified" : 1400554872299,
    "username" : "zh9w1hc49q",
    "activated" : true
   }, {
    "uuid" : "7f8e638a-dfcb-11e3-971e-fdc9e466fac1",
    "type" : "user",
    "created" : 1400555086264,
    "modified" : 1400555086264,
    "username" : "lxrpebngsl",
    "activated" : true
   }, {
    "uuid" : "2d7fa7ba-dfcc-11e3-8b04-5f7a1794920c",
    "type" : "user",
    "created" : 1400555378091,
    "modified" : 1400555378091,
    "username" : "yeimn3szbh",
    "activated" : true
   }, {
    "uuid" : "3cc89e7a-dfcc-11e3-9a11-f1c6519f66af",
    "type" : "user",
    "created" : 1400555403735,
    "modified" : 1400555403735,
    "username" : "7s5e3jtieh",
    "activated" : true
   }, {
    "uuid" : "7cc785ea-dfcc-11e3-b24a-d5b4112501a1",
    "type" : "user",
    "created" : 1400555511102,
    "modified" : 1400555511102,
    "username" : "5cxhactgdj",
    "activated" : true
   }, {
    "uuid" : "ba8b717a-dfcc-11e3-85ca-3db38b18c75d",
    "type" : "user",
    "created" : 1400555614727,
    "modified" : 1400555614727,
    "username" : "qjf8b3r6q8",
    "activated" : true
   }, {
    "uuid" : "d5ad176a-dfcc-11e3-9e67-d933f3e27add",
    "type" : "user",
    "created" : 1400555660246,
    "modified" : 1400555660246,
    "username" : "mh2kbjyop1",
    "activated" : true
   }, {
    "uuid" : "2d4bf81a-dfcd-11e3-9e57-eb0fac2d4582",
    "type" : "user",
    "created" : 1400555807249,
    "modified" : 1400555807249,
    "username" : "q4xpsfjfvf",
    "activated" : true
   }, {
    "uuid" : "65368b5a-dfcd-11e3-8a1a-b9f751cf717c",
    "type" : "user",
    "created" : 1400555901061,
    "modified" : 1400555901061,
    "username" : "r1xnbh79us",
    "activated" : true
   }, {
    "uuid" : "6a9423fa-dfcd-11e3-8841-c1c4a8c96d7d",
    "type" : "user",
    "created" : 1400555910063,
    "modified" : 1400555910063,
    "username" : "sofa8kyoca",
    "activated" : true
   }, {
    "uuid" : "1698653a-dfce-11e3-8524-89dd680b7ce4",
    "type" : "user",
    "created" : 1400556198659,
    "modified" : 1400556198659,
    "username" : "4lo3srucvl",
    "activated" : true
   }, {
    "uuid" : "236b79fa-dfce-11e3-a9a3-250f2047b4bc",
    "type" : "user",
    "created" : 1400556220175,
    "modified" : 1400556220175,
    "username" : "w2k0etnjjj",
    "activated" : true
   }, {
    "uuid" : "54eb716a-dfce-11e3-9781-ab12107b7351",
    "type" : "user",
    "created" : 1400556303222,
    "modified" : 1400556303222,
    "username" : "ir4ad2dqri",
    "activated" : true
   }, {
    "uuid" : "5bb51d2a-dfce-11e3-be10-4ff224c17422",
    "type" : "user",
    "created" : 1400556314610,
    "modified" : 1400556314610,
    "username" : "0fktzcr36b",
    "activated" : true
   }, {
    "uuid" : "60cf6b3a-dfce-11e3-b8bf-ed78a8f851f8",
    "type" : "user",
    "created" : 1400556323171,
    "modified" : 1400556323171,
    "username" : "ytbdzt3w9e",
    "activated" : true
   }, {
    "uuid" : "628a88ba-dfce-11e3-8cac-51d3cb69b303",
    "type" : "user",
    "created" : 1400556326075,
    "modified" : 1400556326075,
    "username" : "ywuxvxuir6",
    "activated" : true
   } ],
    "timestamp" : 1409574113435,
    "duration" : 2812,
    "organization" : "easemob-demo",
    "applicationName" : "chatdemoui",
    "cursor" : "LTU2ODc0MzQzOllvcUl1dF9PRWVPTXJGSFR5Mm16QXc",
    "count" : 20
  }

删除 IM 用户[单个]

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

注意:删除一个用户会删除以该用户为群主的所有群组和聊天室。

  • Path: /{org_name}/{app_name}/users/{username}
  • HTTP Method: DELETE
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:404(用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X DELETE -H "Authorization: Bearer YWMtSozP9jHNEeSQegV9EK5eAQAAAUlmBR2bTGr-GP2xNh8GhUCdKViBFgtox3M" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users/ywuxvxuir6"

Response 示例:

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

删除 IM 用户[批量]

删除某个 APP 下指定数量的环信账号。可一次删除 N 个用户,数值可以修改。建议这个数值在100-500之间,不要过大。需要注意的是,这里只是批量的一次性删除掉 N个用户,具体删除哪些并没有指定,可以在返回值中查看到哪些用户被删除掉了。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users
  • HTTP Method: DELETE
  • URL Params: limit=N,N指定删除数据的最大条数
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X DELETE -H "Authorization: Bearer YWMtSozP9jHNEeSQegV9EK5eAQAAAUlmBR2bTGr-GP2xNh8GhUCdKViBFgtox3M" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users?limit=5"

Response 示例:

{
  "action" : "delete",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "params" : {
    "limit" : [ "5" ]
  },
  "path" : "/users",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users",
  "entities" : [ {
    "uuid" : "fff15c10-df37-11e3-843f-e5b88d483c56",
    "type" : "user",
    "created" : 1400491736144,
    "modified" : 1409055655016,
    "username" : "wjglpgecxu",
    "activated" : true,
    "nickname" : "wjglpgecxu",
    "notifier_name" : "chatdemoui_dev"
  }, {
    "uuid" : "4cca8760-df3c-11e3-8712-9f7483b2df95",
    "type" : "user",
    "created" : 1400493583061,
    "modified" : 1400493583061,
    "username" : "pfs5afofrf",
    "activated" : true
  }, {
    "uuid" : "5918fb7a-df3f-11e3-94d1-1f977e72d55c",
    "type" : "user",
    "created" : 1400494892199,
    "modified" : 1407465728550,
    "username" : "igm8dl8m2e",
    "activated" : true,
    "nickname" : "sadsadsa",
    "notification_display_style" : 0,
    "notification_no_disturbing" : false
  }, {
    "uuid" : "ee6e5a3a-df3f-11e3-bbe9-d3a806493d4a",
    "type" : "user",
    "created" : 1400495142739,
    "modified" : 1400495142739,
    "username" : "lgqieuevag",
    "activated" : true
  }, {
    "uuid" : "6d3ba2ea-df41-11e3-b304-eb2e9192a84a",
    "type" : "user",
    "created" : 1400495784974,
    "modified" : 1400495784974,
    "username" : "quqx6qjmb2",
    "activated" : true
  } ],
  "timestamp" : 1409576576785,
  "duration" : 9426,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui",
  "cursor" : "LTU2ODc0MzQzOmJUdWk2dDlCRWVPekJPc3VrWktvU2c"
}

重置 IM 用户密码

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{username}/password
  • HTTP Method: PUT
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: {“newpassword” : “${新密码指定的字符串}”}
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:400(错误请求)、404(用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X PUT -H "Authorization: Bearer YWMtSozP9jHNEeSQegV9EKeAQAAAUlmBR2bTGr-GP2xNh8GhUCdKViBFgtox3M" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users/ywuxvxuir6/password" -d '{"newpassword" : "123456"}'

Response 示例:

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

修改用户推送显示昵称

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{username}
  • HTTP Method: PUT
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: {“nickname” : “${昵称值}”}
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:400(用户不存在、错误请求)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端REST API常见错误码

curl 示例:

curl -X PUT -H "Authorization: Bearer YWMtSozP9jHNEeSQegV9EKeAQAAAUlmBR2bTGr-GP2xNh8GhUCdKViBFDSEF2E" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users/jianguo" -d '{"nickname" : "张建国"}'

Response 示例:

{
  "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"
}

好友与黑名单

给 IM 用户添加好友

给一个用户添加好友,好友必须是和自己在一个 APP 下的 IM 用户,每个用户的好友数量上限为1000。{owner_username} 是要添加好友的用户名,{friend_username} 是被添加的用户名。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{owner_username}/contacts/users/{friend_username}
  • HTTP Method: POST
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:404(此IM用户或被添加的好友不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X POST -H "Authorization: Bearer YWMtP_8IisA-EeK-a5cNq4Jt3QAAAT7fI10IbPuKdRxUTjA9CNiZMnQIgk0LEU2" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users/jliu/contacts/users/yantao"

Response 示例:

{
  "action": "post",
  "application":"4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "path":"/users/aa6160da-eb01-11e3-ab09-15edd986e7b7/contacts",
  "uri":"https://a1.easemob.com/easemob-demo/chatdemoui/users/jliu/contacts/yantao",
  "entities": [
    {
      "uuid":"0086742a-dc9b-11e3-a782-1b5d581c57a9",
      "type":"user",
      "created":1400204403810,
      "modified":1400204403810,
      "username":"yantao",
      "activated":true
    }
  ],
  "timestamp": 1489128716085,
  "duration": 104,
  "organization":"easemob-demo",
  "applicationName":"chatdemoui"
}

解除 IM 用户的好友关系

从 IM 用户的好友列表中移除一个用户。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{owner_username}/contacts/users/{friend_username}
  • HTTP Method: DELETE
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:404(此 IM 用户或被解除的好友不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X DELETE -i -H "Authorization: Bearer YWMtP_8IisA-EeK-a5cNq4Jt3QAAAT7fI10IbPuKdRxUTjA9CNiZMnQIgk0LEU2" "https://a1.easemob.com/easemob-demo/chatdemoui/users/stliu/contacts/users/yantao"

Response 示例:

{
  "action" : "delete",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "params" : { },
  "path" : "/users/stliu/contacts",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users/stliu/contacts/users/yantao",
  "entities" : [ {
    "uuid" : "aa6160da-eb01-11e3-ab09-15edd986e7b7",
    "type" : "user",
    "created" : 1401787813725,
    "modified" : 1409739134225,
    "username" : "88888",
    "activated" : true,
    "device_token" : "67aab3a88a0b146b7883e7b0275ffe94f509a4e69e8b1db503b2fa4f9c556dd3",
    "nickname" : "88888",
    "notification_display_style" : 0,
    "notification_no_disturbing" : false,
    "notification_no_disturbing_end" : 24,
    "notification_no_disturbing_start" : 0,
    "notifier_name" : "chatdemoui_dev"
  } ],
  "timestamp" : 1409739808288,
  "duration" : 1575,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}

获取 IM 用户的好友列表

查看某个 IM 用户的好友信息。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{owner_username}/contacts/users
  • HTTP Method: GET
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:404(此 IM 用户或要查看的好友不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X GET -H "Authorization: Bearer YWMtP_8IisA-EeK-a5cNq4Jt3QAAAT7fI10IbPuKdRxUTjA9CNiZMnQIgk0LEU2" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/contacts/users"

Response 示例:

{
  "action" : "get",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/contacts/users",
  "entities": [],
  "data": [
    "ss01",
    "ss05",
    "ss09"
  ],
  "timestamp" : 1409737366071,
  "duration" : 45,
  "count": 3
}

获取 IM 用户的黑名单

获取一个IM用户的黑名单。黑名单中的用户无法给该 IM 用户发送消息。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{owner_username}/blocks/users
  • HTTP Method: GET
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: “data” : [ “stliu2” ] — 黑名单中的用户的用户名:stliu2
  • 可能的错误码:404(此 IM 用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X GET -H "Authorization: Bearer YWMtwIRGSE9gEeSbpNnVBsIhiwAAAUon2XDyEBoBUk6Vg2xm8DZdVjxbhwm7XWY" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/blocks/users"

Response 示例:

{
  "action" : "get",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/blocks/users",
  "entities" : [ ],
  "data" : [ "stliu2" ],
  "timestamp" : 1412824409803,
  "duration" : 36
}

往 IM 用户的黑名单中加人

往一个 IM 用户的黑名单中加人,一次可以添加一个或多个,黑名单中的用户无法给该 IM 用户发送消息,每个用户的黑名单人数上限为500。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{owner_username}/blocks/users
  • HTTP Method: POST
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: {“usernames”:[“5cxhactgdj”, “mh2kbjyop1”]} —- 需要加入到黑名单中的用户名以数组方式提交,usernames 为关键字不变
  • Response Body: “data” : [ “5cxhactgdj”, “mh2kbjyop1” ] — 已经加到黑名单中的用户名:5cxhactgdj、mh2kbjyop1
  • 可能的错误码:404(此 IM 用户不存在)、400(被添加的IM用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X POST -H 'Authorization: Bearer YWMtwIRGSE9gEeSbpNnVBsIhiwAAAUon2XDyEBoBUk6Vg2xm8DZdVjxbhwm7XWY' -i  'https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/blocks/users' -d '{"usernames":["5cxhactgdj", "mh2kbjyop1"]}'

Response 示例:

{
  "action" : "post",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui",
  "entities" : [ ],
  "data" : [ "5cxhactgdj", "mh2kbjyop1" ],
  "timestamp" : 1412825162092,
  "duration" : 15,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}

从 IM 用户的黑名单中减人

从一个 IM 用户的黑名单中减人。将用户从黑名单移除后,恢复好友关系,可以互相收发消息。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{owner_username}/blocks/users/{blocked_username}
  • HTTP Method: DELETE
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: entities 中包含了刚刚从黑名单中移除的 IM 用户的详细信息
  • 可能的错误码:404(此 IM 用户或被减的用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X DELETE -H 'Authorization: Bearer YWMtwIRGSE9gEeSbpNnVBsIhiwAAAUon2XDyEBoBUk6Vg2xm8DZdVjxbhwm7XWY' -i  'https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/blocks/users/5cxhactgdj'

Response 示例:

{
  "action" : "delete",
  "application" : "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
  "path" : "/users/72bb4f9a-fce7-11e3-98f4-adc39e9f4363/blocks",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/blocks",
  "entities" : [ {
    "uuid" : "7cc785ea-dfcc-11e3-b24a-d5b4112501a1",
    "type" : "user",
    "created" : 1400555511102,
    "modified" : 1400555511102,
    "username" : "5cxhactgdj",
    "activated" : true
  } ],
  "timestamp" : 1412825354550,
  "duration" : 164,
  "organization" : "easemob-demo",
  "applicationName" : "chatdemoui"
}

在线与离线

查看用户在线状态

查看一个用户的在线状态。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{username}/status
  • HTTP Method: GET
  • URL Params: 无
  • Request Headers: {“Content-Type”:”application/json”,”Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:404(此用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X GET -i -H "Authorization: Bearer YWMtxc6K0L1aEeKf9LWFzT9xEAAAAT7MNR_9OcNq-GwPsKwj_TruuxZfFSC2eIQ" "https://a1.easemob.com/easemob-demo/chatdemoui/users/zw123/status"

Response 示例:

{
    "action": "get",
    "application": "4d7e4ba0-dc4a-11e3-90d5-e1ffbaacdaf5",
    "params": {},
    "uri": "https://a1.easemob.com/easemob-demo/chatdemoui",
    "entities": [],
    "data": {
        "stliu": "online"  //注意:这里返回的是用户名和在线状态的键值对,值为 online 或者 offline
    },
    "timestamp": 1404932199220,
    "duration": 743,
    "organization": "easemob-demo",
    "applicationName": "chatdemoui"
}

查询离线消息数

获取一个 IM 用户的离线消息数。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{owner_username}/offline_msg_count
  • HTTP Method: GET
  • URL Params: 无
  • Request Headers: {“Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: “data” : {“v3y0kf9arx” : 0 } —- 用户名:v3y0kf9arx,离线消息数:0条
  • 可能的错误码:404(此用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X GET -H "Authorization: Bearer YWMtwIRGSE9gEeSbpNnVBsIhiwAAAUon2XDyEBoBUk6Vg2xm8DZdVjxbhwm7XWY" -i  "https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/offline_msg_count"

Response 示例:

{
  "action" : "get",
  "uri" : "https://a1.easemob.com/easemob-demo/chatdemoui/users/v3y0kf9arx/offline_msg_count",
  "entities" : [ ],
  "data" : {
    "v3y0kf9arx" : 0
  },
  "timestamp" : 1412823831894,
  "duration" : 57
}

查询某条离线消息状态

通过离线消息的 ID 查看用户的该条离线消息状态。消息ID可以通过获取聊天记录查询。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{username}/offline_msg_status/{msg_id}
  • HTTP Method: GET
  • URL Params: 无
  • Request Headers: {“Content-Type”:”application/json”,”Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:404(此用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X GET -i -H "Authorization: Bearer YWMtxc6K0L1aEeKf9LWFzT9xEAAAAT7MNR_9OcNq-GwPsKwj_TruuxZfFSC2eIQ" "https://a1.easemob.com/easemob-demo/chatdemoui/users/zw123/offline_msg_status/1121212"

Response 示例:

{
    "action": "get",
    "uri": "http://a2.easemob.com/easemob-demo/chatdemoui/users/jianxin/offline_msg_status/12",
    "entities": [],
    "data": {
        "12": "delivered"      // 格式:"{消息id}":"{状态}",状态的值有两个: deliverd表示此用户的该条离线消息已经收到过了,undelivered表示此用户的该条离线消息还未收到
    },
    "timestamp": 1423573644082,
    "duration": 644
}

账号禁用与解禁

用户账号禁用

禁用某个 IM 用户的账号,禁用后该用户不可登录,下次解禁后该账户恢复正常使用。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{username}/deactivate
  • HTTP Method: POST
  • URL Params: 无
  • Request Headers: {“Content-Type”:”application/json”,”Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:400(此用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X POST -i -H "Authorization: Bearer YWMtxc6K0L1aEeKf9LWFzT9xEAAAAT7MNR_9OcNq-GwPsKwj_TruuxZfFSC2eIQ" "https://a1.easemob.com/easemob-demo/chatdemoui/users/zw123/deactivate"

Response 示例:

{
    "action": "Deactivate user",
    "entities": [
        {
            "uuid": "3861665a-07e5-11e4-b1d3-b70cde5a834c",
            "type": "user",
            "created": 1404964180277,
            "modified": 1424781662293,
            "username": "zw123",
            "activated": false,
            "nickname": "zw123"
        }
    ],
    "timestamp": 1424846198409,
    "duration": 244
}

用户账号解禁

解除对某个 IM 用户账号的禁用,解禁后用户恢复正常使用。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{username}/activate
  • HTTP Method: POST
  • URL Params: 无
  • Request Headers: {“Content-Type”:”application/json”,”Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:400(此用户不存在)、401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X POST -i -H "Authorization: Bearer YWMtxc6K0L1aEeKf9LWFzT9xEAAAAT7MNR_9OcNq-GwPsKwj_TruuxZfFSC2eIQ" "https://a1.easemob.com/easemob-demo/chatdemoui/users/zw123/activate"

Response 示例:

{
    "action": "activate user",
    "timestamp": 1424845777195,
    "duration": 2
}

强制用户下线

如果某个 IM 用户已经登录环信服务器,强制其退出登录。

注意:在调用程序中,如果返回429错误,说明接口被限流了,请稍微暂停一下并重试。详见接口限流说明

  • Path: /{org_name}/{app_name}/users/{username}/disconnect
  • HTTP Method: GET
  • URL Params: 无
  • Request Headers: {“Content-Type”:”application/json”,”Authorization”:”Bearer ${token}”}
  • Request Body: 无
  • Response Body: 详情参见示例返回值,返回的 JSON 数据中会包含除上述属性之外的一些其他信息,均可以忽略。
  • 可能的错误码:401(未授权[无token、token错误、token过期])、5xx。详见:服务器端 REST API 常见错误码

curl 示例:

curl -X GET -i -H "Authorization: Bearer YWMtxc6K0L1aEeKf9LWFzT9xEAAAAT7MNR_9Ocqq-GwPsKwj_TruuxZfFSC2eIQ" "https://a1.easemob.com/easemob-demo/chatdemoui/users/zw123/disconnect"

Response 示例:

{
  "action" : "Disconnect user",
  "data" : {
    "result" : true    // true表示强制下线成功,false表示强制用户下线失败
  },
  "timestamp" : 1430825373659,
  "duration" : 16
}

上一页:入门

下一页:聊天记录