使用sdk功能之前必须进行初始化,配置必要信息。
调用方法:
bool Startup(Dispatcher dispatcher, INemoSDKCallbacks cb, string logFolder, int maxRecvVideoStreams = 10, bool useHwCodec = false, bool forceBaseRender = false);
使用SDK进行呼叫之前,需要首先进行登录。在云视讯平台每个用户有唯一的账号标识。
SDK提供三方账号登录以及小鱼系统账号登录两种登录方式,v3.3.1新增统一认证登录
/// <summary>
/// 使用第三方账户登录 。displayName 参数不能包含以下字符
/// </summary>
/// <param name="extID">企业ID</param>
/// <param name="extUserId">外部用户ID</param>
/// <param name="displayName">显示名称</param>
void LoginExternalAccount(string extID, string extUserId, string displayName);
/// <summary>
/// 自动注册SDK用户并登录
/// </summary>
/// <param name="extID">企业ID</param>
/// <param name="extUserId">外部用户ID,合法串:^[0-9a-zA-Z_-]{0,50}$</param>
/// <param name="displayName">显示名称</param>
[Obsolete("即将废弃")]
void LoginWithAutoRegister(string extID, string extUserId, string displayName);
/// <summary>
/// 使用 XYLINK 账号登录
/// </summary>
/// <param name="userName"></param>
/// <param name="password"></param>
void LoginXYLinkAccount(string userName, string password);
/*****v3.3.1三方统一认证登录*****/
/// <summary>
/// 三方账号认证登录
/// </summary>
/// <param name="extId">企业ID</param>
/// <param name="extUserId">三方Id</param>
/// <param name="displayName">显示名称</param>
/// <param name="authCode">认证授权码</param>
void LoginAuthExtUserId(string extId, string extUserId, string displayName,string authCode);
/// <summary>
/// 三方授权登录
/// </summary>
/// <param name="extId">企业ID</param>
/// <param name="authToken">认证授权码</param>
void LoginAuthExtToken(string extId, string authToken);
/// <summary>
/// 小鱼账号认证登录
/// </summary>
/// <param name="extId">企业ID</param>
/// <param name="account">账号</param>
/// <param name="password">密码</param>
/// <param name="countryCode">国家码</param>
void LoginAuthXYAccount(string extId, string account, string password, string countryCode="");
三方账号登录:通过 LoginExternalAccount/LoginWithAutoRegister 方法进行三方账户的注册或登录,并通过此方法获取到登录状态的回调。 该方法中 extUserId 为账户登录名,作为唯一用户标识,取值限制为仅包含数字和字母且长度不超过50位的字符串。
小鱼账号登录:也可以通过LoginXYLinkAccount方法进行小鱼账户登录,并通过此方法获取到登录状态的回调。 该方法中 username为小鱼账户名,password为密码,与小鱼系统账户保持一致。
如果您的业务系统中已有用户账户系统并且希望您的业务系统中的用户账户在云视讯平台有唯一的用户标识,以便后期对用户的音视频呼叫进行管理,您可以使用第三方账号登录方法进行登录。您可以使用您的应用系统中的用户账号登录云视讯平台,登录成功后平台将返回当前账户在云视讯平台的呼叫号码,后期该号码将作为该账户的唯一标识,每次登录后均使用同一呼叫号码,因此建议您将您应用系统的用户账户与云视讯平台的呼叫号码建立一一对应的关系并进行保存,以便在后期的业务场景中使用。如果当前登录的账户在云视讯平台不存在,则平台将会注册一个新账户并登录,如果已经存在则使用已存在的账户进行登录。 (调用示例参考demo实现)
有效期内三方账号数量默认支持十万,数量如不满足需求请联系小鱼支持人员。
如果您已经在小鱼管理后台创建了账户并希望使用小鱼系统账户登录,您可以使用小鱼账号登录方法进行登录。已创建的小鱼账号统一在小鱼管理后台进行管理,包含账号所属组织机构的管理。(调用示例参考demo实现)
包括了三方账号认证登录(LoginAuthExtUserId)、三方授权登录(LoginAuthExtToken)、小鱼账号认证登录(LoginAuthXYAccount)。小鱼提供jar包,客户根据jar包生成authcode授权码。用户在登录客户端SDK时,携带authcode,小鱼服务端校验准确性。(调用示例参考demo实现)
通过 INemoSDKCallbacks.OnLoginState 回调
//登录状态
public enum SDKLoginState {
LoggedIn, LoggingIn, LoggingOut, LoggedOut
}
// 用户信息
public class SDKLoginInfo {
public long id;
// 呼叫号码,小鱼后台给登陆账号分配的唯一呼叫号码。
public string userNumber;
public string userName;
// 登录唯一标识
public string securityKey;
// 这个字段表示正在检测网络拓扑,为true时应用层在呼叫前需要等待 OnNetworkTopologyDetectionFinished事件 完成后再进行呼叫
public bool isDetectingNetworkTopology;
public SDKConfDevInfo confDevInfo;
}
void Logout();
通过SetConfig设置鉴权所需的ClientId和ClientSecret,在登录时会通过SDK获取token,该token提供小鱼SDK访问server接口的校验。在当前token过期后,调用RefreshToken刷新token,在onRefreshTokenResult回调通知外部token的有效期及是否有其他保存信息。(最低支持版本: v3.3)
使用流程如下(具体使用参考Demo示例):
使用API鉴权后,访问会控的H5页面需要将SDK提供的JS方法(GetJavascriptObject)注入到集成的webview,以确保能正常访问H5页面,具体参考SDkDemo。
更多接口,请查阅API概览-初始化、登录、硬件绑定登录