差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 | |||
|
g_serversdk:a_integrate [2016-04-22 11:51] weijia 移除 |
— (当前版本) | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ====== Server SDK集成 ====== | ||
| - | 云视互动提供了一系列用于开发后台业务的API接口(Server SDK),为云视互动提供如下支持: | ||
| - | -用户集成服务:注册用户到云视互动。 | ||
| - | -消息推送服务:通过云视互动推送自定义消息。 | ||
| - | -其他服务:云视互动还为开发者提供更丰富的服务接口能力,会陆续上线。如果您有额外的需求,欢迎联系云视互动。\\ | ||
| - | Server SDK提供JAVA和PHP两个版本。使用前,首先要在开发者中心注册一个应用,并获取服务器密钥("server key")。该server key会在每一次请求中被验证。\\ | ||
| - | [[http://www.rongkecloud.com/download/serversdk/YsServerSDK.zip|下载云视互动服务器SDK及DEMO]]\\ | ||
| - | [[d_guide:g_addrongkecloud|加入云视互动]] | ||
| - | ===== SDK初始化 ===== | ||
| - | **PHP** | ||
| - | <code php> | ||
| - | ... | ||
| - | include(dirname(__FILE__) . "/YsServerSDK.php"); | ||
| - | /*开发者需要申请自己的应用,并获得对应的server key,在接口中用*/ | ||
| - | $server_key = "your-server-key"; | ||
| - | $obj = new YsServerSDK($server_key); | ||
| - | ... | ||
| - | </code> | ||
| - | **JAVA** | ||
| - | <code java> | ||
| - | import com.yunshihudong.sdk.server.YsServerSDK; | ||
| - | ... | ||
| - | /*开发者需要申请自己的应用,并获得对应的server key,在接口中用*/ | ||
| - | String server_key = "your-server-key"; | ||
| - | YsServerSDK client = new YsServerSDK(server_key); | ||
| - | ... | ||
| - | </code> | ||
| - | ===== 用户集成服务 ===== | ||
| - | 当App集成云视互动的时候, 需要把App系统内的已有用户和新注册的用户和云视互动集成, 就是为每个App用户创建一个云视互动账号,并且该帐号在当前应用内部全局唯一。\\ | ||
| - | **云视互动账号信息规则定义如下:** | ||
| - | - 云视互动账号需要使用英文字母/数字/下划线/横线/英文点的组合,且必须是半角字符; | ||
| - | - 云视互动账号中的字母不区分大小写,内部统一为小写字母; | ||
| - | - 云视互动账号中不能有中文; | ||
| - | - 云视互动账号中不能有空格; | ||
| - | - 云视互动账号长度:6~50位,密码长度:6~50位。 | ||
| - | ==== 添加单个账号 ==== | ||
| - | ---- | ||
| - | 接口名称:AddUser\\ | ||
| - | 使用说明:当用户在用户系统注册成功后,然后通过该接口同步添加云视互动账号,如果失败可采取重试策略,如果仍旧失败,可回滚整个数据,保证系统数据完整性。建议在服务器端执行。\\ | ||
| - | 调用频率:10000/3600s\\ | ||
| - | 示例代码片段:\\ | ||
| - | **PHP** | ||
| - | <code php> | ||
| - | ... | ||
| - | /*增加单个账号*/ | ||
| - | $res = $obj->addUser("jack10001","mypassw0rd"); | ||
| - | if($res['ret_code'] == SdkErrorCode::SUCCESS){ | ||
| - | echo "Add Success\r\n"; | ||
| - | } | ||
| - | ... | ||
| - | </code> | ||
| - | **JAVA** | ||
| - | <code java> | ||
| - | ... | ||
| - | /*添加账号*/ | ||
| - | int ret = client.addUser("jack10001", "mypassw0rd"); | ||
| - | if(ret == SdkErrorCode.SUCCESS){ | ||
| - | //添加成功 | ||
| - | }else if(ret == SdkErrorCode.SDK_ERR_SERVERKEY_NOT_EXIST){ | ||
| - | //key认证失败 | ||
| - | }else if(ret == SdkErrorCode.SDK_ERR_NAME_PWD_FORMAT_LEN_ERROR){ | ||
| - | //账号密码格式错误 | ||
| - | }else if(ret == SdkErrorCode.SDK_ERR_USERNAME_EXIST){ | ||
| - | //账号重复 | ||
| - | }else if(ret == SdkErrorCode.SDK_ERR_MISSED_PARAMATER){ | ||
| - | //参数出错 | ||
| - | }else if(ret == SdkErrorCode.SDK_ERR_REQEST_TOO_FAST){ | ||
| - | //请求过快 | ||
| - | }else{ | ||
| - | //SdkErrorCode.SYSTEM_ERR | ||
| - | //系统错误或其他未知错误 | ||
| - | } | ||
| - | ... | ||
| - | </code> | ||
| - | ==== 批量添加账号 ==== | ||
| - | ---- | ||
| - | 接口名称:BatchAddUser\\ | ||
| - | 使用说明:批量添加账号。该接口适合把用户App已有用户系统批量注册到云视互动,建议在服务器端执行。\\ | ||
| - | 调用频率:100/s\\ | ||
| - | 示例代码片段:\\ | ||
| - | **PHP** | ||
| - | <code php> | ||
| - | ... | ||
| - | /*批量增加账号*/ | ||
| - | $user_data = new UserData(); | ||
| - | $user_data->NewUser("jerry1","password"); | ||
| - | $user_data->NewUser("jerry2","password"); | ||
| - | $users_info = $user_data->getData(); | ||
| - | $ret = $obj->BatchAddUser($users_info); | ||
| - | if($ret['ret_code'] == SdkErrorCode::SUCCESS) | ||
| - | echo "Success\r\n"; | ||
| - | else if($ret['ret_code'] == SdkErrorCode::SDK_ERR_NAME_PWD_FORMAT_LEN_ERROR){ | ||
| - | $invalid_user = $ret['result'];//获得出错的账号信息 | ||
| - | echo "Invalid User info is :$invalid_user"; | ||
| - | }else{ | ||
| - | echo "failed,code:$ret\r\n"; | ||
| - | } | ||
| - | ... | ||
| - | </code> | ||
| - | **JAVA** | ||
| - | <code java> | ||
| - | ... | ||
| - | import com.yunshihudong.sdk.server.UserInfo; | ||
| - | UserInfo UserInfoData = new UserInfo(); | ||
| - | UserInfoData.NewUser("jerry1", "password"); | ||
| - | UserInfoData.NewUser("jerry2", "password"); | ||
| - | HashMap result = client.BatchAddUser(UserInfoData.GetData()); | ||
| - | int ret_muti = Integer.parseInt(result.get("ret_code")); | ||
| - | if(ret_muti == SdkErrorCode.SUCCESS){ | ||
| - | //添加成功 | ||
| - | }else if(ret_muti == SdkErrorCode.SDK_ERR_SERVERKEY_NOT_EXIST){ | ||
| - | //key认证失败 | ||
| - | }else if(ret_muti == SdkErrorCode.SDK_ERR_NAME_PWD_FORMAT_LEN_ERROR){ | ||
| - | //账号密码格式错误 | ||
| - | //打印result返回的错误名字列表 | ||
| - | System.out.println("错误的账号信息:"+result.get("result")); | ||
| - | }else if(ret_muti == SdkErrorCode.SDK_ERR_MORE_THAN_MAX_USERS_ERROR){ | ||
| - | //添加人数超过最大允许上限 | ||
| - | }else if(ret_muti == SdkErrorCode.SDK_ERR_MISSED_PARAMATER){ | ||
| - | //参数错误 | ||
| - | }else if(ret == SdkErrorCode.SDK_ERR_REQEST_TOO_FAST){ | ||
| - | //请求过快 | ||
| - | }else{ | ||
| - | //SdkErrorCode.SYSTEM_ERR | ||
| - | //系统错误或其他未知错误 | ||
| - | } | ||
| - | ... | ||
| - | </code> | ||
| - | ===== 消息推送服务 ===== | ||
| - | 云视互动后台提供了专门用于传输用户自定义数据的接口,开发者可以看做是云视互动提供的推送服务。用户数据被统一透传到云视互动后台,由后台负责适配不同的推送服务(APNS,云视互动推送云),最终数据被推给客户端。\\ | ||
| - | 接口名称:SendUserMsg\\ | ||
| - | 使用说明:支持给一个或者多个账号发送消息,格式为文本消息,目前长度限制在1024个字符。\\ | ||
| - | 调用频率:100/s\\ | ||
| - | 示例代码片段:\\ | ||
| - | **PHP** | ||
| - | <code php> | ||
| - | ... | ||
| - | /*给指定账号推送用户自定义消息*/ | ||
| - | //发送者账号 | ||
| - | $sender = "sunnys"; | ||
| - | //接受者账号,多个接收者用 半角逗号','隔开 | ||
| - | $recivers = "jerrygao,tomliu,lucy123"; | ||
| - | // 推送内容 | ||
| - | $msg = "{type:"invite",content:"Play MangJiang Together?",date:"17:28 2015/5/27"}"; | ||
| - | // 发起推送消息的动作 | ||
| - | $ret = $obj->sendUserMsg($sender, $recivers, $msg); | ||
| - | // 结果处理 | ||
| - | if($ret['ret_code'] == SdkErrorCode::SUCCESS){ | ||
| - | echo "Success\r\n"; | ||
| - | }else{ | ||
| - | echo "failed,code:$ret\r\n"; | ||
| - | } | ||
| - | ... | ||
| - | </code> | ||
| - | **JAVA** | ||
| - | <code java> | ||
| - | ... | ||
| - | //发送者账号 | ||
| - | String sender = "sunnys"; | ||
| - | //接受者账号,多个接收者用 半角逗号','隔开 | ||
| - | String recivers = "jerrygao,tomliu,lucy123"; | ||
| - | // 推送内容 | ||
| - | String content = "北京今天的天气:多云转雷阵雨 30℃~20℃ "; | ||
| - | // 发起推送的动作 | ||
| - | int result = client.SendMessage(sender, recivers, content); | ||
| - | // 结果处理 | ||
| - | if(result == SdkErrorCode.SUCCESS){ | ||
| - | //发送成功 | ||
| - | }else if(result == SdkErrorCode.SDK_ERR_SERVERKEY_NOT_EXIST){ | ||
| - | //key认证失败 | ||
| - | }else if(result == SdkErrorCode.SDK_ERR_MESSAGE_SEND_ERROR){ | ||
| - | //发送失败,可以尝试重发 | ||
| - | }else if(result == SdkErrorCode.SDK_ERR_MISSED_PARAMATER){ | ||
| - | //参数错误 | ||
| - | }else if(result == SdkErrorCode.SDK_ERR_MORE_THAN_MAX_USERS_ERROR){ | ||
| - | //消息提过大,不大于1024 | ||
| - | }else if(ret == SdkErrorCode.SDK_ERR_REQEST_TOO_FAST){ | ||
| - | //请求过快 | ||
| - | }else{ | ||
| - | //SdkErrorCode.SYSTEM_ERR | ||
| - | //系统错误或其他未知错误 | ||
| - | } | ||
| - | ... | ||
| - | </code> | ||