本次场景:
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())); //省略其他不重要的set req.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