Android 集成环信即时通讯修改用户密码

来源:互联网 发布:python3 apache 编辑:程序博客网 时间:2024/05/19 10:52

最近做含有即时通讯的项目,由于开发周期较短,就选用了环信的SDK,集成也比较简单,注册登录API都有相应的方法可以调,唯独缺少了修改密码,你也许说,后台可以改,但这显然不便,因此我苦苦找寻官方Api,找到了答案,其实也就是两个网络请求,第一步获取管理员TOKEN,第二步put新密码,具体数据格式请查找http://docs.easemob.com/doku.php?id=start:100serverintegration:20users#

废话不多说,请自行gradle Okhttp和Gson,代码不是很完善,请注意初始化,奉上具体代码:

private HuanXinTokenBean tokenBean;private Gson gson;private Handler mHandler = new Handler(){    @Override    public void handleMessage(Message msg) {        if (null!=msg){           String result =  msg.obj.toString();            Log.e("xxx",result);            tokenBean = gson.fromJson(result,HuanXinTokenBean.class);        }    }};

private void getToken(){    OkHttpClient client = new OkHttpClient();    String gson = "{\"grant_type\":\"client_credentials\",\"client_id\":\"YourClientKey\",\"client_secret\":\"YourClientSecret\"}";    String baseUrl = "https://a1.easemob.com/YourOrgName/YourAppName/token";    RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), gson);    Request request = new Request.Builder()            .header("content-type","application/json")            .post(requestBody)            .url(baseUrl)            .build();        client.newCall(request).enqueue(new Callback() {        @Override        public void onFailure(@NonNull Call call, @NonNull IOException e) {        }        @Override        public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {            Message message = mHandler.obtainMessage();            message.obj = response.body().string();            message.sendToTarget();        }    });}
public void updatePass(String user){    OkHttpClient client = new OkHttpClient();    String baseUrl = "https://a1.easemob.com/YourOrgName/YourAppName/users/" +            user+ "/password";    String gson = "{\"newpassword\":\"123456\"}";    RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), gson);    String access_token = tokenBean.getAccess_token();    Log.e("xxx",access_token);    Request request = new Request.Builder()            .addHeader("Authorization","Bearer "+access_token)            .url(baseUrl)            .put(requestBody)            .build();    client.newCall(request).enqueue(new Callback() {        @Override        public void onFailure(@NonNull Call call, @NonNull IOException e) {            Log.e("xxx","fail");        }        @Override        public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {            Log.e("xxx",response.body().string());        }    });}

再把实体类奉上

public class HuanXinTokenBean {    private String access_token;    private int expires_in;    private String application;    public String getAccess_token() {        return access_token;    }    public void setAccess_token(String access_token) {        this.access_token = access_token;    }    public int getExpires_in() {        return expires_in;    }    public void setExpires_in(int expires_in) {        this.expires_in = expires_in;    }    public String getApplication() {        return application;    }    public void setApplication(String application) {        this.application = application;    }