环信 IM即时通讯 使用环信 User Token 鉴权

客户端 SDK 不提供获取 token 的 API。如果你的用户在客户端使用环信 token 登录和鉴权,你需要在应用服务器(App Server)集成环信服务端获取 token 的 API,实现获取 Token 的业务逻辑。

环信服务端支持以下两种方式获取用户 token:

  • 通过“用户 ID”和“密码”获取:用户注册后,使用 “用户 ID” 和 “密码” 登录。登录成功后,你的 App Server 会为客户端提供一个用户 token。
  • 通过“用户 ID”获取:用户在客户端上登录时,你的应用服务器会下发用户 token,SDK 使用用户 ID 和用户 token 进行登录。开发者可通过 RESTful API 在你的应用服务器上对用户 token 进行管理,设置有效期,并确定当用户不存在时是否自动创建用户。

前提条件

要调用环信即时通讯 RESTful API,请确保满足以下要求:

认证方式

环信即时通讯 RESTful API 要求 Bearer HTTP 认证。每次发送 HTTP 请求时,都必须在请求头部填入如下 Authorization 字段:

Authorization:Bearer ${YourAppToken}

为提高项目的安全性,环信使用 token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 推荐使用 app token 的鉴权方式,详见 使用 App Token 鉴权

通过用户 ID 和密码获取用户 token

HTTP 请求

POST https://{host}/{org_name}/{app_name}/token

路径参数

参数类型是否必需描述
hostString环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 获取环信即时通讯 IM 的信息
org_nameString环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 获取环信即时通讯 IM 的信息
app_nameString你在环信即时通讯云控制台创建应用时填入的应用名称。详见 获取环信即时通讯 IM 的信息

请求 header

参数类型是否必需描述
Content-TypeString内容类型。请填 application/json
AcceptString内容类型。请填 application/json

请求 body

参数类型是否必需描述
grant_typeString授权方式。
– 若值为 password,通过用户 ID 和密码获取 token,需设置 username 和 password 参数。在该请求中,该参数需设置为 password
– 若值为 inherit,通过用户 ID 获取 token,只需设置 username 参数。
usernameString用户 ID。
passwordString用户的登录密码。
ttlLongtoken 有效期,单位为秒。设置为 0 则 token 有效期为永久。若不传该参数,有效期默认为 60 天。此外,也可通过环信即时通讯云控制台 (opens new window)用户认证页面设置。该参数值以最新设置为准。
注意:VIP 5 集群该参数单位为毫秒。

HTTP 响应

响应 body

如果返回的 HTTP 状态码为 200,表示成功获取 token,响应包体中包含以下字段:

字段类型描述
access_tokenString有效的用户 token。
expires_inLongtoken 有效期,单位为秒。在有效期内无需重复获取。
注意:VIP 5 集群该参数单位为毫秒。
userJSON用户相关信息。
user.uuidString用户的 UUID。即时通讯服务为该请求中的 app 或用户生成的唯一内部标识,用于生成用户 token。
user.typeString对象类型,无需关注。
user.createdLong注册用户的 Unix 时间戳,单位为毫秒。
user.modifiedLong最近一次修改用户信息的 Unix 时间戳,单位为毫秒。
user.usernameString用户 ID。
user.activatedBool用户是否为活跃状态:
– true:用户为活跃状态。
– false:用户为封禁状态。如要使用已被封禁的用户账户,你需要调用解禁用户的 API对账号解除封禁。

如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考响应状态码了解可能的原因。

示例

请求示例

curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
   "grant_type": "password",
   "username": "C",
   "password": "1",
   "ttl": "1024000"
 }' 'http://XXXX/XXXX/XXXX/token'

响应示例

{
    "access_token": "YWMtrR6ECkz8Eeyx6Y9j1eX9kbsMrFep3U6BvVj7KSnNonWqRx7gTPwR7Kzl-Q_xISNOAwMAAAF9UPZqbQAPoAAtYK9fWgaTNyuWoB3-6nGf_TXBx3Nt3XRZST-elU0x2A",
    "expires_in": 1024000,
    "user": {
        "uuid": "aa471ee0-XXXX-XXXX-ace5-f90ff121234e",
        "type": "user",
        "created": 1637740861395,
        "modified": 1637740861395,
        "username": "c",
        "activated": true
    }
}

通过用户 ID 获取用户 token

你通过用户 ID 获取用户 token。若用户 ID 不存在,你可以确定是否自动创建用户。

HTTP 请求

POST https://{host}/{org_name}/{app_name}/token

路径参数

参数类型是否必需描述
hostString环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 获取环信即时通讯 IM 的信息
org_nameString环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 获取环信即时通讯 IM 的信息
app_nameString你在环信即时通讯云控制台创建应用时填入的应用名称。详见 获取环信即时通讯 IM 的信息

请求 header

参数类型是否必需描述
Content-TypeString内容类型。请填 application/json
AcceptString内容类型。请填 application/json
AuthorizationStringBearer ${Your App Token} Bearer 是固定字符,后面加英文空格,再加上获取到的 App Token 的值。

请求 body

参数类型是否必需描述
grant_typeString授权方式。
– 若值为 password,通过用户 ID 和密码获取 token,需设置 username 和 password 参数。
– 若值为 inherit,通过用户 ID 获取 token,只需设置 username 参数。在该请求中,该参数需设置为 inherit
usernameString用户 ID。
autoCreateUserBoolean当用户不存在时,是否自动创建用户。自动创建用户时,需保证授权方式(grant_type)必须为 inherit,API 请求 header 中使用 App token 进行鉴权
ttlLongtoken 有效期,单位为秒。设置为 0 则 token 有效期为永久。若不传该参数,有效期默认为 60 天。此外,也可通过环信即时通讯云控制台 (opens new window)用户认证页面设置。该参数值以最新设置为准。
注意:VIP 5 集群该参数单位为毫秒。

HTTP 响应

响应 body

如果返回的 HTTP 状态码为 200,表示成功获取 token。如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考响应状态码了解可能的原因。

关于响应包体中的字段的描述,详见[通过用户 ID 和密码获取 token 的 API](#通过用户 ID 和密码获取用户 token) 中的响应字段的描述。

示例

请求示例

# 将 <YourAppToken> 替换为你在服务端生成的 App Token

curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' -d '{
    "username": "test2333",
    "grant_type": "inherit",
    "autoCreateUser": true,
    "ttl": 1024000
 }' 'http://XXXX/XXXX/XXXX/token'

响应示例

自动创建用户并获取 token 的响应如下:

{
    "access_token": "YWMthyeiFhbyEe2eMGeYZSLlT7sMrFep3U6BvVj7KSnNonUiDB-wFvIR7a5Ttx2-01MYAwMAAAGCfIeryQAPoAAsuveDfkUrePkEM2Hgy6SaOTeTx3ETgh5cnXcP_HfBPg",
    "expires_in": 1024000,
    "user": {
        "uuid": "220c1fb0-XXXX-XXXX-ae53-b71dbed35318",
        "type": "user",
        "created": 1659946472753,
        "modified": 1659946472753,
        "username": "test2333",
        "activated": true
    }
}

使用环信 App Token 鉴权

环信提供的 REST API 需要 app token (管理员权限 token) 才能使用,即发送 HTTP 请求时需要携带 app token。本文介绍如何获取 app token。

另外,环信 Server SDK 提供了用户、消息、群组、聊天室等资源的操作管理能力,详见 Java Server SDK 和 PHP Server SDK

获取管理员权限 Token

获取 token 时,服务器会返回 token 有效期,即响应中的 expires_in 字段的值。由于网络延迟等原因,系统不保证 token 在此值表示的有效期内绝对有效。如果发现 token 使用异常,如返回 HTTP 状态码 401,请重新获取新的 token。

注意

请不要频繁向服务器发送获取 token 的请求,同一账号发送此请求超过一定频率会被服务器封禁。

HTTP 请求

POST {https://host}/{org_name}/{app_name}/token

路径参数

参数类型是否必需描述
hostString环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 获取环信即时通讯 IM 的信息
org_nameString环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 获取环信即时通讯 IM 的信息
app_nameString你在环信即时通讯云控制台创建应用时填入的应用名称。详见 获取环信即时通讯 IM 的信息

请求 header

参数类型是否必需描述
Content-TypeString内容类型。请填 application/json
AcceptString内容类型。请填 application/json

请求 body

参数类型是否必需描述
grant_typeString授权方式。该参数设置为固定字符串 client_credentials,即客户端凭证模式。
client_idStringApp 的 client_id,用于生成 app token 调用 REST API。详见 环信即时通讯云控制台 (opens new window)应用详情页面。
client_secretStringApp 的 client_secret,用于生成 app token 调用 REST API。详见 环信即时通讯云控制台 (opens new window)应用详情页面。
ttlLongtoken 有效期,单位为秒(s)。设置为 0 则 token 有效期为永久。若不传该参数,默认值为 60 天,也可通过环信即时通讯云控制台 (opens new window)用户认证页面设置。该参数值以最新设置为准。

HTTP 响应

响应 body

如果返回的 HTTP 状态码为 200,表示成功返回 token。响应 body 包含如下字段:

参数类型描述
access_tokenString有效的 Token 字符串。
expires_inLongToken 有效时间,单位为秒,在有效期内不需要重复获取。
applicationString当前 App 的 UUID 值。

如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考 响应状态码 了解可能的原因。

示例

请求示例

curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
   "grant_type": "client_credentials",
   "client_id": "YXA6i-Ak8Ol4Eei2l11ZjV-EAg",
   "client_secret": "YXA6VunqiNxoB7IwXHInk1cGiXOOJfc",
   "ttl": "1024000"
 }' 'http://a1.easemob.com/easemob-demo/testapp/token'

响应示例

{
  "access_token": "YWMte3bGuOukEeiTkNP4grL7iwAAAAAAAAAAAAAAAAAAAAGL4CTw6XgR6LaXXVmNX4QCAgMAAAFnKdc-ZgBPGgBFTrLhhyK8woMEI005emtrLJFJV6aoxsZSioSIZkr5kw",
  "expires_in": 1024000,
  "application": "8be024f0-e978-11e8-b697-5d598d5f8402"
}

开通配置环信即时通讯 IM 服务获取环信APPkey

开通配置环信即时通讯 IM 服务获取环信APPkey

前提条件

配置环信即时通讯 IM 服务前,请确保已经具备以下条件:

  • 创建一个环信开发者账号。

创建应用

参照以下步骤在环信即时通讯云控制台创建应用和购买即时通讯 IM 服务。

  1. 登录环信即时通讯云控制台 (opens new window),在首页的应用列表区域点击 添加应用 按钮,创建即时通讯 IM 应用。
  1. 在 创建应用 对话框中,输入新应用的相关信息,点击 创建 按钮创建应用。新建应用的服务版本默认为免费版。

注意

  1. appname:你设置的应用名称,用于生成 App Key。该参数的值只能包含小写字母、数字和连字符,不能超过 32 个字符。
  2. Appkey:即时通讯服务分配给每个应用的唯一标识,由 orgname 和 appname 参数的值组成,生成后无法修改。
  3. 数据中心:设置后无法修改。

购买服务

  1. 创建应用后,在 应用列表 中点击所创建应用的 操作 栏中的 查看 按钮,进入 应用详情 页面。
  1. 开通或升级版本。

你可以通过以下方法开通或升级版本。

  • 在页面左侧的导航栏,选择 即时通讯 > 功能配置 > 版本开通,查看各种套餐的详情,选择需要的版本,点击 立即开通
  • 在页面左侧的导航栏,选择 即时通讯 > 服务概览,在 服务版本 区域中单击 升级版本,进入即时通讯 IM 服务版本购买页面。
  • 在页面左侧的导航栏,选择 即时通讯 > 功能配置 > 功能配置总览,点击各功能的 操作 一栏中的 升级 或 增值服务

在 即时通讯IM 服务版本 页面,根据业务实际需求选择所需的服务版本和可选增值服务。该页面的配置参数说明如下表所示:

参数项描述
选择要开通服务的 Appkey请确认 App Key 是否选择正确,购买后无法修改。
请选择服务版本服务版本的选择如下:
– 当 App Key 为免费版时,可购买专业版、旗舰版或尊享版,不可单独购买增值服务。
– 当 App Key 为专业版时,可购买旗舰版、尊享版或单独购买增值服务。
– 当 App Key 为旗舰版时,可购买尊享版或单独购买增值服务。
– 当 App Key 为尊享版时,仅支持单独购买增值服务。
可选增值服务请根据实际需求选择增值功能:
– 单个群成员数上限和单个用户可加入群组数上限:不支持叠加购买;以单个群成员数上限举例说明,如果旗舰版购买了 8000 人/群的增值服务,则表示单个群成员上限配置提升至 8000 人/群。
– 消息云存储时长和 REST API 接口调用频率上限:支持可叠加购买,即支持多倍购买;以消息云存储时长举例说明,如购买时选择了 10 份,则表示消息云存储时长延长 300 天(30 天*10)。

注意

服务购买页显示的预估费用仅用于做参考,预估费用仅包含基础费用,具体费用以每月账单为准。

  1. 勾选 我已阅读并同意《环信云服务购买协议》
  2. 核对所选服务信息,单击 立即购买 即生成订单。

购买成功后即刻生效,当天开始计费,每月 1 号自动扣除上月总消耗费用。

获取环信即时通讯 IM 的信息

在环信即时通讯云控制台,你可以查看你的环信即时通讯 IM 服务的如下信息:

应用信息描述如何查看
Orgname环信即时通讯 IM 为每个公司(组织)分配的唯一标识。该参数是 APPKEY 的一部分。环信即时通讯云控制台 (opens new window)的 应用详情 页面查看。
Appname你在环信即时通讯云控制台 (opens new window)创建应用时填入的应用名称。该参数是 AppKey 的一部分。环信即时通讯云控制台 (opens new window)的 应用详情 页面查看。
APPKEY应用的唯一标识,由 Orgname 和 Appname 组成,生成后不允许修改。环信即时通讯云控制台 (opens new window)的 应用详情 页面查看。
服务器域名(hostRESTful API 请求域名。环信为应用提供的 REST API 和 WebSocket 的请求域名。环信即时通讯云控制台 (opens new window)的 服务概览 页面查看。
数据中心环信 IM 提供的分布在全球的多个数据中心:
– 国内数据中心:北京 1 区和北京 Vip6 区
– 海外数据中心:新加坡 1 区、 法兰克福(法国)和弗吉尼亚(美国)
环信即时通讯云控制台 (opens new window)的 服务概览 页面查看。

查看和配置功能

创建应用后,参照以下步骤在环信即时通讯云控制台上查看环信即时通讯 IM 服务的详情以及进行配置。

在环信即时通讯云控制台的首页的 应用列表 中,点击目标应用的 操作 栏中的 查看 按钮,在左侧导航栏选择 即时通讯 > 功能配置 > 功能配置总览,您可以查看到当前 App Key 的服务配置并根据实际业务需求管理相关配置,具体操作说明如下:

  1. 免费开通:指该功能当前服务版本里已包含,可根据实际业务需求选择是否开通;点击 免费开通,则可立即开通该功能;
  2. 设置:指该功能已开通且有需要设置的配置项,点击 设置,即可进入对应设置页配置;
  3. 升级:功能如果当前服务版本中不包含、或需要提高功能状态中的参数值,则可点击 升级,购买升级至符合业务需求的服务版本即可;
  4. 增值服务:点击增值服务,进入增值服务购买页面,根据实际需求选择购买。

设置消息撤回(REST & 客户端)

  1. 在环信即时通讯云的左侧导航栏中,选择 即时通讯 > 功能配置 > 功能配置总览。在 功能配置总览 页面的 基础功能 页签下,搜索找到消息撤回(REST&客户端),单击右侧的 设置(已开通状态下)。
  2. 在弹出的 消息撤回时间设置 对话框中,设置消息可撤回时长。端消息撤回时长和 REST 消息撤回时长均不能超过 7 天。
  3. 单击 确定 保存配置。

配置推送证书

使用离线推送通知之前,需完成各平台的证书配置。当前支持以下平台:苹果 APNs、谷歌 FCM、华为、小米、OPPO、VIVO 和魅族。

开启环信即时通讯 IM 服务后,按照以下步骤添加消息推送证书:

  1. 在环信即时通讯云控制台首页的应用列表中,在目标应用的 操作 栏中,点击 查看
  1. 在左侧导航栏,选择 即时通讯 > 功能配置 > 消息推送 > 证书管理,进入 证书管理 页面。
  1. 点击 添加推送证书 按钮,打开 添加推送证书 对话框。
  1. 在 添加推送证书 对话框中,填写各厂商平台的相关推送信息,点击 保存 按钮,完成证书配置。

配置消息回调

环信即时通讯 IM 提供消息回调服务。配置回调后,应用服务器会收到所选类型的消息和事件。

购买环信即时通讯 IM 服务后,按照以下步骤添加消息回调证书:

  1. 在环信即时通讯云控制台首页的应用列表中,在目标应用的 操作 栏中点击 查看
  1. 在左侧导航栏,选择 即时通讯 > 功能配置 > 消息回调,进入 消息回调 页面。
  1. 点击 添加回调地址 按钮,打开回调配置对话框。
  1. 在回调配置对话框中,填写回调相关配置信息,点击 保存 按钮,完成回调配置,具体配置内容说明见 回调配置

敏感词设置

  1. 在环信即时通讯云的左侧导航栏中,选择 即时通讯 > 功能配置 > 功能配置总览。在 功能配置总览 页面的 基础功能 页签中搜索找到敏感词,单击右侧的 设置(已开通状态下),打开敏感词配置页面。
  2. 在敏感词配置页面,单击 服务设置 旁边的 编辑,在弹出的 敏感词服务 对话框中,按需求选择对应设置。
  3. 单击 确定 保存配置。

REST-IP 白名单设置

添加 IP 白名单

  1. 在环信即时通讯云的左侧导航栏中,选择 即时通讯 > 功能配置 > 功能配置总览。在 功能配置总览 页面的 基础功能 页签中搜索找到 REST-IP 白名单,单击右侧的 设置(已开通状态下),打开安全配置页面。
  2. 在 安全配置 页面,单击 添加IP,在弹出的 添加 IP 对话框中,输入 IP 地址。

注意

  1. 每次只能输入 1 个 IP 地址,最多可添加 8 个。
  2. 添加 IP 地址成功后 10 分钟后生效。
  3. 若白名单列表为空,则所有 IP 地址均可发 REST 消息。
  1. 单击 保存 完成配置。

删除 IP 白名单

如果你不再允许某个 IP 地址继续发送 REST 消息,可以在 IP 白名单中将其删除。如果你删除了 IP 白名单中所有 IP,即白名单列表为空,则默认所有 IP 地址均可发送 REST 消息。

  1. 在环信即时通讯云的左侧导航栏中,选择 即时通讯 > 功能配置 > 安全配置
  2. 在 IP白名单 列表中,单击目标 IP 右侧的 删除
  1. 单击 确认,则删除该 IP 地址。

账户中心

登录环信即时通讯云控制台,选择 费用中心 > 账户中心,可查看你当前的账户余额和支出明细。

查看订单记录

登录环信即时通讯云控制台,选择 费用中心 > 订单中心,可查看你当前的所有订单记录。

订单中心页面上的订单状态说明如下:

  • 开通中:用户生成订单后,需要 3-5 分钟完成功能配置。此时订单显示为开通中状态,表示购买的服务正在配置;配置完成后,订单变为服务中状态。
  • 服务中:表示当前订单中购买的服务在使用中。同一 App Key 同时仅能有 1 个服务版本的订单状态为服务中
  • 已完结:表示当前订单中购买的服务已关闭。当客户升级新服务后,原服务版本订单和相关增值服务订单均会自动关闭,变为已完结状态。

点击 操作 栏中的 详情,可查看订单详情。

查看账单记录

登录环信即时通讯云控制台,选择 费用中心 > 消费账单,可查看你当前的已生成的账单记录。

chat 聊天 APP开发接入 环信 IM即时通讯SDK教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

chat 聊天 APP开发接入 环信 IM即时通讯SDK教程

核心代码示例,详情参阅demo

jsBridge.easeIm.chat({
  //字符串,标题栏文字,一般用对方昵称或备注
  title: $("#chat_title").val(),
  //字符串,会话ID,单聊时指对方ID,群聊和聊天室时指群和聊天室ID
  conversationId: $("#chat_conversationId").val(),
  //字符串,聊天类型
  //single 单聊
  //group  群聊
  //room   聊天室
  chatType: $("#chat_chatType").val(),
  //字符串,消息ID,用于查询历史记录时的定位消息ID
  historyMsgId: $("#chat_historyMsgId").val(),
  //布尔,是否开启漫游,用于标记是否优先从服务器拉取消息
  isRoam: JSON.parse($("#chat_isRoam").val()),
  //字符串,输入区菜单样式
  //all                     完整模式
  //disableVoice            不可用语音
  //disableEmojIcon         不可用表情
  //disableVoiceEmojIcon    不可用语音和表情
  //onlyText                仅文本输入
  inputMenuStyle: $("#chat_inputMenuStyle").val(),
  //字符串数组,点 + 号打开的扩展功能
  //留空则全部显示
  inputExtItems: [
    "camera",   //相机
    "album",    //相册
    "video",    //视频
    "file"      //文件
  ]
}, function(succ, data) {
  if (!succ) {
    alert("开启聊天失败\n" + JSON.stringify(data));
  }
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.chat({
  //字符串,标题栏文字,一般用对方昵称或备注
  title: $("#chat_title").val(),
  //字符串,会话ID,单聊时指对方ID,群聊和聊天室时指群和聊天室ID
  conversationId: $("#chat_conversationId").val(),
  //字符串,聊天类型
  //single 单聊
  //group  群聊
  //room   聊天室
  chatType: $("#chat_chatType").val(),
  //字符串,消息ID,用于查询历史记录时的定位消息ID
  historyMsgId: $("#chat_historyMsgId").val(),
  //布尔,是否开启漫游,用于标记是否优先从服务器拉取消息
  isRoam: JSON.parse($("#chat_isRoam").val()),
  //字符串,输入区菜单样式
  //all                     完整模式
  //disableVoice            不可用语音
  //disableEmojIcon         不可用表情
  //disableVoiceEmojIcon    不可用语音和表情
  //onlyText                仅文本输入
  inputMenuStyle: $("#chat_inputMenuStyle").val(),
  //字符串数组,点 + 号打开的扩展功能
  //留空则全部显示
  inputExtItems: [
    "camera",   //相机
    "album",    //相册
    "video",    //视频
    "file"      //文件
  ]
}, function(succ, data) {
  if (!succ) {
    alert("开启聊天失败\n" + JSON.stringify(data));
  }
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.chat({
  //字符串,标题栏文字,一般用对方昵称或备注
  title: $("#chat_title").val(),
  //字符串,会话ID,单聊时指对方ID,群聊和聊天室时指群和聊天室ID
  conversationId: $("#chat_conversationId").val(),
  //字符串,聊天类型
  //single 单聊
  //group  群聊
  //room   聊天室
  chatType: $("#chat_chatType").val(),
  //字符串,消息ID,用于查询历史记录时的定位消息ID
  historyMsgId: $("#chat_historyMsgId").val(),
  //布尔,是否开启漫游,用于标记是否优先从服务器拉取消息
  isRoam: JSON.parse($("#chat_isRoam").val()),
  //字符串,输入区菜单样式
  //all                     完整模式
  //disableVoice            不可用语音
  //disableEmojIcon         不可用表情
  //disableVoiceEmojIcon    不可用语音和表情
  //onlyText                仅文本输入
  inputMenuStyle: $("#chat_inputMenuStyle").val(),
  //字符串数组,点 + 号打开的扩展功能
  //留空则全部显示
  inputExtItems: [
    "camera",   //相机
    "album",    //相册
    "video",    //视频
    "file"      //文件
  ]
}, function(succ, data) {
  if (!succ) {
    alert("开启聊天失败\n" + JSON.stringify(data));
  }
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

unreadMessageCount 未读消息数量 APP开发接入环信 IM即时通讯SDK教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

unreadMessageCount 未读消息数量 APP开发接入环信 IM即时通讯SDK教程

核心代码示例,详情参阅demo

jsBridge.easeIm.unreadMessageCount({
  //可选,会话ID,留空则返回所有会话的总未读消息数
  conversationId: $("#unread_conversationId").val()
}, function(succ, data) {
  alert(succ ? data.count : JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.unreadMessageCount({
  //可选,会话ID,留空则返回所有会话的总未读消息数
  conversationId: $("#unread_conversationId").val()
}, function(succ, data) {
  alert(succ ? data.count : JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.unreadMessageCount({
  //可选,会话ID,留空则返回所有会话的总未读消息数
  conversationId: $("#unread_conversationId").val()
}, function(succ, data) {
  alert(succ ? data.count : JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

status 获取当前状态 APP开发接入环信 IM即时通讯SDK

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

status 获取当前状态 APP开发接入环信 IM即时通讯SDK

核心代码示例,详情参阅demo

jsBridge.easeIm.status(function(succ, data) {
  //data.inited     是否已初始化
  //data.connected  是否已连接到IM服务器
  //data.logined    是否已登录
  //data.username   已登录时,当前登录的用户ID
  alert(JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.status(function(succ, data) {
  //data.inited     是否已初始化
  //data.connected  是否已连接到IM服务器
  //data.logined    是否已登录
  //data.username   已登录时,当前登录的用户ID
  alert(JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.status(function(succ, data) {
  //data.inited     是否已初始化
  //data.connected  是否已连接到IM服务器
  //data.logined    是否已登录
  //data.username   已登录时,当前登录的用户ID
  alert(JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

userInfo 设置用户信息 APP开发接入环信 IM即时通讯SDK教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

userInfo 设置用户信息 APP开发接入环信 IM即时通讯SDK教程

核心代码示例,详情参阅demo

jsBridge.easeIm.userInfo({
  //可选,默认头像图片链接
  avatar: "https://www.yimenapp.com/assets/trtc/a.png",
  //可选,设置一组用户信息
  //以 username 为唯一标识增加或覆盖已有的用户信息
  users: [
    {
      //字符串,用户ID
      username: "user1",
      //字符串,昵称
      nickname: "张三",
      //字符串,头像图片链接
      avatar  : "https://www.yimenapp.com/assets/trtc/a1.png"
    },
    {
      username: "user2",
      nickname: "李四",
      avatar  : "https://www.yimenapp.com/assets/trtc/a2.png"
    }
  ]
}, function(succ, data) {
  alert(succ ? "设置成功" : "设置失败\n" + JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.userInfo({
  //可选,默认头像图片链接
  avatar: "https://www.yimenapp.com/assets/trtc/a.png",
  //可选,设置一组用户信息
  //以 username 为唯一标识增加或覆盖已有的用户信息
  users: [
    {
      //字符串,用户ID
      username: "user1",
      //字符串,昵称
      nickname: "张三",
      //字符串,头像图片链接
      avatar  : "https://www.yimenapp.com/assets/trtc/a1.png"
    },
    {
      username: "user2",
      nickname: "李四",
      avatar  : "https://www.yimenapp.com/assets/trtc/a2.png"
    }
  ]
}, function(succ, data) {
  alert(succ ? "设置成功" : "设置失败\n" + JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.userInfo({
  //可选,默认头像图片链接
  avatar: "https://www.yimenapp.com/assets/trtc/a.png",
  //可选,设置一组用户信息
  //以 username 为唯一标识增加或覆盖已有的用户信息
  users: [
    {
      //字符串,用户ID
      username: "user1",
      //字符串,昵称
      nickname: "张三",
      //字符串,头像图片链接
      avatar  : "https://www.yimenapp.com/assets/trtc/a1.png"
    },
    {
      username: "user2",
      nickname: "李四",
      avatar  : "https://www.yimenapp.com/assets/trtc/a2.png"
    }
  ]
}, function(succ, data) {
  alert(succ ? "设置成功" : "设置失败\n" + JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

logout 退出 APP开发接入环信 IM即时通讯SDK

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

logout 退出 APP开发接入环信 IM即时通讯SDK

核心代码示例,详情参阅demo


jsBridge.easeIm.logout(function(succ, data) {
  alert(succ ? "退出成功" : "退出失败\n" + JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.logout(function(succ, data) {
  alert(succ ? "退出成功" : "退出失败\n" + JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.logout(function(succ, data) {
  alert(succ ? "退出成功" : "退出失败\n" + JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

login 登录 APP开发接入 环信 IM即时通讯SDK

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

login 登录 APP开发接入 环信 IM即时通讯SDK

核心代码示例,详情参阅demo

//token 和 password 任选其一,优先使用 token
jsBridge.easeIm.login({
  //字符串,用户ID
  //请使用 用户体系集成 RESTful API 管理用户
  //或环信控制台 用户管理
  username: $("#login_username").val(),
  //字符串,用户鉴权token
  token: $("#login_token").val(),
  //字符串,密码
  password: $("#login_password").val()
}, function(succ, data) {
  alert(succ ? "登录成功" : "登录失败\n" + JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//token 和 password 任选其一,优先使用 token
jsBridge.easeIm.login({
  //字符串,用户ID
  //请使用 用户体系集成 RESTful API 管理用户
  //或环信控制台 用户管理
  username: $("#login_username").val(),
  //字符串,用户鉴权token
  token: $("#login_token").val(),
  //字符串,密码
  password: $("#login_password").val()
}, function(succ, data) {
  alert(succ ? "登录成功" : "登录失败\n" + JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//token 和 password 任选其一,优先使用 token
jsBridge.easeIm.login({
  //字符串,用户ID
  //请使用 用户体系集成 RESTful API 管理用户
  //或环信控制台 用户管理
  username: $("#login_username").val(),
  //字符串,用户鉴权token
  token: $("#login_token").val(),
  //字符串,密码
  password: $("#login_password").val()
}, function(succ, data) {
  alert(succ ? "登录成功" : "登录失败\n" + JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

init 初始化 APP开发接入环信 IM即时通讯SDK教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

环信 IM即时通讯

核心代码示例,详情参阅demo

jsBridge.easeIm.init({
  //字符串,环信平台上创建的应用 AppKey
  appKey: $("#init_appKey").val(),
  //布尔,如果之前处于登录状态,初始化成功后是否自动登录
  autoLogin: JSON.parse($("#init_autoLogin").val()),
  //布尔,是否对发送消息进行加密
  useEncryption: JSON.parse($("#init_useEncryption").val()),
  //布尔,是否发送消息已读回执
  requireReadAck: JSON.parse($("#init_requireReadAck").val()),
  //布尔,是否发送消息已送达回执
  requireDeliveryAck: JSON.parse($("#init_requireDeliveryAck").val()),
  //布尔,是否开启调试模式
  //调试模式能输出更多的日志信息,但会影响运行性能
  debug: JSON.parse($("#init_debug").val())
}, function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.init({
  //字符串,环信平台上创建的应用 AppKey
  appKey: $("#init_appKey").val(),
  //布尔,如果之前处于登录状态,初始化成功后是否自动登录
  autoLogin: JSON.parse($("#init_autoLogin").val()),
  //布尔,是否对发送消息进行加密
  useEncryption: JSON.parse($("#init_useEncryption").val()),
  //布尔,是否发送消息已读回执
  requireReadAck: JSON.parse($("#init_requireReadAck").val()),
  //布尔,是否发送消息已送达回执
  requireDeliveryAck: JSON.parse($("#init_requireDeliveryAck").val()),
  //布尔,是否开启调试模式
  //调试模式能输出更多的日志信息,但会影响运行性能
  debug: JSON.parse($("#init_debug").val())
}, function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.init({
  //字符串,环信平台上创建的应用 AppKey
  appKey: $("#init_appKey").val(),
  //布尔,如果之前处于登录状态,初始化成功后是否自动登录
  autoLogin: JSON.parse($("#init_autoLogin").val()),
  //布尔,是否对发送消息进行加密
  useEncryption: JSON.parse($("#init_useEncryption").val()),
  //布尔,是否发送消息已读回执
  requireReadAck: JSON.parse($("#init_requireReadAck").val()),
  //布尔,是否发送消息已送达回执
  requireDeliveryAck: JSON.parse($("#init_requireDeliveryAck").val()),
  //布尔,是否开启调试模式
  //调试模式能输出更多的日志信息,但会影响运行性能
  debug: JSON.parse($("#init_debug").val())
}, function(succ, data) {
  alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->