介绍AppKey和环信ID的数据结构以及使用规则。
当您申请了AppKey后,会得到一个xxxx#xxxx格式的字符串,字符串只能由小写字母数字组成,AppKey是环信应用的唯一标识。前半部分org_name是在多租户体系下的唯一租户标识,后半部分app_name是租户下的App唯一标识(在环信后台创建一个App时填写的应用ID即是app_name)。下述的RESTAPI中,/{org_name}/{app_name}的请求,均是针对一个唯一的AppKey进行的。目前环信注册的AppKey暂不能由用户自己完成删除操作,如果对APP删除需要联系环信操作完成。
环信作为一个聊天通道,只需要提供环信ID(也就是IM用户名)和密码就够了。
当APP和环信集成的时候,需要把APP系统内的已有用户和新注册的用户和环信集成,为每个已有用户创建一个环信的账号(环信ID),并且APP有新用户注册的时候,需要同步的在环信中注册。
在注册环信账户的时候,需要注意环信ID的规则:
另:本文档中可能会交错使用“环信ID”和“环信用户名”两个术语,但是请注意,这里两个的意思是一样的。
注意:以下所有API均需要org管理员或APP管理员权限才能访问。
强烈建议保护好org管理员,APP管理员的用户名和密码以及APP的client_id和client_secret,尽量只在APP的服务器后台对环信用户做增删改查的管理,包括新用户注册。为了您的信息安全,请一定不要将org管理员或APP管理员的用户名和密码写死在手机客户端中,因为手机APP很容易被反编译,从而导致别人获取到您的管理员账号和密码,导致数据泄露。
环信不同数据中心的RESTAPI请求域名:
应用所在数据中心可以在环信用户管理后台>应用列表找到对应的appkey点击“查看”>即时通讯>服务概览中查看:
注意:
1.为满足不同客户的业务需求,环信在多地部署了数据中心。不同数据中心的RESTAPI请求域名不同。请根据您所在数据中心选择请求域名。
2.国内VIP区、客服专区客户请联系商务经理索要RESTAPI请求地址。
3.支持HTTP和HTTPS。
环信提供的RESTAPI需要权限才能访问,权限通过发送HTTP请求时携带token来体现,下面描述获取token的方式。说明:API描述的时候使用到的{APP的client_id}之类的这种参数需要替换成具体的值。
{"access_token":"YWMte3bGuOukEeiTkNP4grL7iwAAAAAAAAAAAAAAAAAAAAGL4CTw6XgR6LaXXVmNX4QCAgMAAAFnKdc-ZgBPGgBFTrLhhyK8woMEI005emtrLJFJV6aoxsZSioSIZkr5kw","expires_in":5184000,"application":"8be024f0-e978-11e8-b697-5d598d5f8402"}返回值400,表示client_id或client_secret错误
环信提供多个接口实现对IM用户的注册、获取、修改、删除等管理功能。
在返回值中查看entities字段包含的信息
返回值200,表示成功返回token
该方式开发者可以对用户token进行管理。获取用户token时,可以设置token有效期。
{"access_token":"YWMtrR6ECkz8Eeyx6Y9j1eX9kbsMrFep3U6BvVj7KSnNonWqRx7gTPwR7Kzl-Q_xISNOAwMAAAF9UPZqbQAPoAAtYK9fWgaTNyuWoB3-6nGf_TXBx3Nt3XRZST-elU0x2A","expires_in":1024000,"user":{"uuid":"aa471ee0-4cfc-11ec-ace5-f90ff121234e","type":"user","created":1637740861395,"modified":1637740861395,"username":"c","activated":true}}返回值400,表示username或password错误
获取单个IM用户的详细信息接口。
需要在请求时对应填写{username},需要获取的IM用户名。
不分页
删除一个用户,如果此用户是群组或者聊天室的群主owner,系统会同时删除这些群组和聊天室。请在操作时进行确认。
需要在请求时对应填写{username},需要删除的IM用户名。
删除某个APP下指定数量的环信账号。可一次删除N个用户,数值可以修改。建议这个数值在100-500之间,不要过大。需要注意的是,这里只是批量的一次性删除掉N个用户,具体删除哪些并没有指定,可以在返回值中查看到哪些用户被删除掉了。
需要在请求时对应填写{username},需要修改密码的IM用户名。
{"action":"setuserpassword","timestamp":1542595598924,"duration":8}返回值404,表示该用户不存在
设置用户的推送昵称,在离线推送时使用。
需要在请求时对应填写{username},需要修改推送昵称的IM用户名。
设置推送消息至客户端的方式,修改后及时有效。服务端对应不同的设置,向用户发送不同展示方式的消息。
需要在请求时对应填写{username},需要推送的IM用户名。
设置IM用户免打扰,在免打扰期间,用户将不会收到离线消息推送。
需要在请求时对应填写{username},需要设置免打扰的IM用户名
环信提供多个接口实现对IM用户的好友以及黑名单进行添加和移除。
需要在请求时对应填写{owner_username},要添加好友的用户名,以及{friend_username},好友用户名。
从IM用户的好友列表中移除一个IM用户。
需要在请求时对应填写{owner_username},要删除好友的用户名,以及{friend_username},被删除好友的用户名。
获取IM用户的好友列表。
需要在请求时对应填写{owner_username},获取好友列表的用户名
获取IM用户的黑名单。
需要在请求时对应填写{owner_username},获取黑名单的用户名
向IM用户的黑名单列表中添加一个或者多个用户,黑名单中的用户无法给该IM用户发送消息,每个用户的黑名单人数上限为500。
需要在请求时对应填写{owner_username},要添加黑名单的用户名
在返回值中查看data字段包含的信息
{"error":"service_resource_not_found","timestamp":1542600419231,"duration":0,"exception":"org.apache.usergrid.services.exceptions.ServiceResourceNotFoundException","error_description":"Serviceresourcenotfound"}返回值400,表示被添加的用户不存在
从IM用户的黑名单中移除用户。将用户从黑名单移除后,恢复到好友,或者未添加好友的用户关系。可以正常的进行消息收发。
需要在请求时对应填写{owner_username},要移除黑名单的用户名
环信提供多个接口,可以查看用户的在线/离线状态,用户的消息的在线/离线状态和数量。
查看一个用户的在线状态。
需要在请求时对应填写{username},要获取在线状态的用户名。
批量查看用户的在线状态,最大同时查看100个用户。
如果请求输入错误的用户名,即请求不存在的用户状态,则返回的参数一定是offline,此接口不对用户名进行校验。
获取IM用户的离线消息数量。
需要在请求时对应填写{owner_username},要获取离线消息数的用户名。
获取IM用户的离线消息状态,查看用户的离线消息离线消息的状态
需要在请求时对应填写{username},要获取离线消息状态的用户名。{msg_id},要查看离线消息状态的ID。
需要在请求时对应填写{username},要禁用的用户名。
{"action":"Deactivateuser","entities":[{"uuid":"4759aa70-eba5-11e8-925f-6fa0510823ba","type":"user","created":1542595573399,"modified":1542597578147,"username":"user1","activated":false,"nickname":"user"}],"timestamp":1542602157258,"duration":12}返回值400,表示此IM用户不存在
需要在请求时对应填写{username},要解禁的用户名。
{"action":"activateuser","timestamp":1542602404132,"duration":9}