2019独角兽企业重金招聘Python工程师标准>>>

本次场景:
1.ios端注册用户同时需要生成用户的云旺账号;
2.ios端登陆时需要返回用户的云旺账号信息,以便于用户再ios端通讯。
所以,服务端只需要实现两个功能:生成云旺账号和获得云旺账号信息。

准备工作:
1.使用淘宝账号登陆淘宝开放平台(http://baichuan.taobao.com/doc2/detail.htm?articleId=102623&docType=1&treeId=41#s5),
申请appkey和appsecret等相关信息;
2.使用key和secret在在线调试通过,地址如下:
(http://open.taobao.com/apitools/apiTools.htm?spm=a3c0d.7629140.0.0.7f30be48R34vap&catId=20654&apiId=24164&apiName=taobao.openim.users.add&scopeId=)

3.测试通过后,使用申请的账号信息登陆后,下载百川sdk开发包(下载需要账号信息、手机的认证,最新的电信199号段不识别);
4.通过maven方式继承sdk到项目中(可参考博客“阿里大于sdk的集成”)。

具体代码如下:

import com.taobao.api.ApiException;
import com.taobao.api.DefaultTaobaoClient;
import com.taobao.api.TaobaoClient;
import com.taobao.api.domain.Userinfos;
import com.taobao.api.request.OpenimUsersAddRequest;
import com.taobao.api.request.OpenimUsersGetRequest;
import com.taobao.api.request.OpenimUsersUpdateRequest;
import com.taobao.api.response.OpenimUsersAddResponse;
import com.taobao.api.response.OpenimUsersGetResponse;
import com.taobao.api.response.OpenimUsersUpdateResponse;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import java.util.ArrayList;
import java.util.List;import static com.kevin.common.util.MD5.getMD5;
import static com.kevin.common.util.RandomUtil.generateRandomNum;/*** ChatUtil** @author 李阳* @description:阿里百川.云旺即时聊天api* @date 2018/9/11* im.url=http://gw.api.taobao.com/router/rest* im.key=25063215* im.secret=1e397e6c4d3bf573442152b4b46cc115*/
@Component
public class ChatUtil {/*正式环境url */@Value("${im.url}")private String url;/*appkey*/@Value("${im.key}")private String key;/*appsecret*/@Value("${im.secret}")private String secret;private static TaobaoClient client;/** addYWUser* @description:添加单个y云旺账号,返回userid集合* @author 李阳* @date 2018/9/11* @params []* @return java.lang.String userId*/public List<String> addYWUser(String nick, String psw) throws ApiException {if (null == client) {client = new DefaultTaobaoClient(url, key, secret);}OpenimUsersAddRequest req = new OpenimUsersAddRequest();List<Userinfos> list2 = new ArrayList<Userinfos>();Userinfos obj3 = new Userinfos();list2.add(obj3);obj3.setNick(nick.trim());obj3.setUserid("imuser".concat(generateRandomNum(6)));obj3.setPassword(getMD5(psw.trim()));// obj3.setName(obj3.getNick());// obj3.setIconUrl("http://xxx.com/xxx");// obj3.setEmail("uid@taobao.com");// obj3.setMobile("18600000000");// obj3.setTaobaoid("tbnick123");// obj3.setRemark("demo");// obj3.setExtra("{}");// obj3.setCareer("UNKNOW");// obj3.setVip("{}");// obj3.setAddress("UNKNOW");// obj3.setAge(0l);// obj3.setGender("UNKNOW");// obj3.setWechat("UNKNOW");// obj3.setQq("UNKNOW");// obj3.setWeibo("UNKNOW");req.setUserinfos(list2);OpenimUsersAddResponse rsp = client.execute(req);System.out.println(rsp.getBody());return rsp.getUidSucc();}/* * getYWUser * @description:获得指定userids的用户信息* @author 李阳* @date 2018/9/11* @params [userIds] 多个userid的字符串使用“,”分割* @return java.util.List<com.taobao.api.domain.Userinfos>*/public List<Userinfos> getYWUser(String userIds) throws ApiException {if (null == client) {client = new DefaultTaobaoClient(url, key, secret);}OpenimUsersGetRequest req = new OpenimUsersGetRequest();req.setUserids(userIds.trim());OpenimUsersGetResponse rsp = client.execute(req);return rsp.getUserinfos();}/* * updateYWUser * @description:更新用户昵称或密码* @author 李阳* @date 2018/9/11* @params [userId, nick, psw]* @return java.util.List<java.lang.String>*/public List<String> updateYWUser(String userId, String nick, String psw) throws ApiException {if (null == client) {client = new DefaultTaobaoClient(url, key, secret);}OpenimUsersUpdateRequest req = new OpenimUsersUpdateRequest();List<Userinfos> list2 = new ArrayList<Userinfos>();Userinfos obj3 = new Userinfos();list2.add(obj3);obj3.setNick(nick.trim());obj3.setUserid(userId.trim());obj3.setPassword(getMD5(psw.trim()));//省略其他不重要的setreq.setUserinfos(list2);OpenimUsersUpdateResponse rsp = client.execute(req);System.out.println(rsp.getBody());return rsp.getUidSucc();}// public static void main(String[] args) throws ApiException {// System.out.println(addYWUser("kevin","kevin"));// System.out.println(JSON.toJSON(getYWUser("imuser914289").get(0)));// List<String> up = updateYWUser("imuser914289", "nick", "1234576");// System.out.println(up);// System.out.println(JSON.toJSON(getYWUser("imuser914289,imuser062100")));// }
}

详情参考:
http://baichuan.taobao.com/doc2/detail.htm?articleId=102623&docType=1&treeId=41#s5
http://open.taobao.com/api.htm?docId=24157&docType=2

转载于:https://my.oschina.net/kevin2kelly/blog/2049650

使用阿里百川云旺实现即时通讯相关推荐

  1. 阿里云旺(即时通讯)基础使用

    在App的oncreate方法中 //必须首先执行这部分代码, 如果在":TCMSSevice"进程中,无需进行云旺(OpenIM)和app业务的初始化,以节省内存;SysUtil ...

  2. 百川云旺客服申请测试流程

    最近做平台接入im系统,了解了阿里的免费阿里百川云旺客服产品,申请测试过程中,也走了不少的坑,这里记录下. (一)申请加入百川应用(首先要有一个淘宝账号登录) http://console.baich ...

  3. 腾讯云的云直播和即时通讯IM开发(全网最详细之一)

    如果你也在面临做直播的 业务的时候迷茫的时候,来看看吧. 腾讯云–云直播 最近这几个项目也是在做直播相关的App开发,之前刚做的时候,自己也经历很多坑. 慢慢的爬过这些坑,做了几款直播软件以后,也算有 ...

  4. 即时通讯源码-即时通讯集群服务免费-通讯百万并发技术-Openfire 的安装配置教程手册-哇谷即时通讯集群方案-哇谷云-哇谷即时通讯源码

    即时通讯源码-即时通讯集群服务免费-通讯百万并发技术-Openfire 的安装配置教程手册-哇谷即时通讯集群方案-哇谷云 1,openfire开发环境配置 很久没有写点东西了.最近很烦心,领导不给力. ...

  5. 【腾讯云IM】即时通讯的登录,登出,用户列表,私聊,图片发送

    uniapp即时通讯 1,初始化(刚开始就紧跟着文档走) 2,App.vue中项目引入腾讯云,(附上账号在其他地方登陆的监听) 3,登录前必需 3.1,获取登录id 3.2,生成userSig,独立封 ...

  6. 云骞开源即时通讯软件

    云骞开源IM是一款使用ASP.NET,Ajax和Comet等技术开发的轻量级IM.主要特点有: 1.云骞开源IM的服务端实际上就是一个ASP.NET网站,因此不需要使用独立服务器,仅需要一个支持.NE ...

  7. (0041) iOS 开发之几家第三方即时通讯

    项目需要介入即时通讯,就对当前主流的IM 第三方服务商进行了自己的对比了解. 1.网易云信 2.融云 3.环信 4.leanCloud 5.阿里百川-云旺 6.ArrowIM 云丛网络 最终我选取了融 ...

  8. Android即时通讯和sns开源项目汇总

    这是一个整理即时通讯(IM)和社交系统(SNS)优秀开源项目的文档,项目上传github欢迎提交更新. 一 即时通讯和社交系统平台 1 环信(推荐) 2 阿里百川 云旺 3 融云 4 OpenSNS ...

  9. 即时通讯云服务免费 破解APP社交化困局

    2014年7月14日消息,在过去的一周里,开发者林迪和他的小伙伴们都通过融云的免费即时通讯云服务接入,顺利实现了自己生活服务类APP的社交化. 不仅实现了单聊功能,本以为会遭遇冷场的群聊功能却意想不到 ...

最新文章

  1. SpringBoot_数据访问-JDBC自动配置原理
  2. Memcached 与 PHP 结合使用
  3. 【NOI2009】诗人小G【决策单调性dp】
  4. 使用Fabric8在CDI管理的bean中注入Kubernetes Services
  5. c55x 汇编语言指令,[转载]关于TMS320C55x的汇编语言中的.sym伪指令
  6. C++ Primer 读书笔记 - 第二章
  7. 浏览器的控制台-----后期更新
  8. 微软要解决癌症问题?
  9. 根据select的内容来批量修改一个表的字段
  10. win7用计算机名共享打印机,WIN7共享打印机 可以同时多少台电脑共享一台打印机-win7一键共享打印机,win7一键共享工具软件...
  11. JS实现文字转语音播放
  12. 司空见惯 - 大哲学家康德的作息时间表
  13. 2021-01-21:脉冲神经网络学习日志
  14. 你期待的Domino V12有什么?
  15. 网页功能升华必备播放器
  16. MC最强辅助模组,有了它从此下矿再也不怕了
  17. 豪华曹操传2014 (数据以及存档文件修改)
  18. macd的python代码同花顺_详解MACD高级技巧,懂得运用的人不多
  19. python屏幕文字识别_Python文字截图识别OCR工具实例解析
  20. INCA软件ProF脚本扩展应用

热门文章

  1. Linux启动过程详细介绍
  2. 达内计算机软件测试,达内软件测试培训让我拥有了实际工作经验
  3. 【物联网控制技术题目】【根轨迹】
  4. 2022-2028全球Webtoon自助发布平台行业调研及趋势分析报告
  5. 2018全球互联网经济大会,春季峰会在南京开幕
  6. React从入门到精通教程01
  7. 【视频编解码·学习笔记】2. H.264简介
  8. 剥离war3.exe 启动游戏实现
  9. 浅谈构建个人资料库和知识库
  10. 个人申请支付宝支付接口教程(没有营业执照也可以申请)