Bmob+融云,node.js获取token

来源:互联网 发布:广数980锥度螺纹编程 编辑:程序博客网 时间:2024/06/08 01:10
在Bmob后台创建云端代码:function onRequest(request, response, modules) {var userId = request.body.userId;var name = request.body.name;var portraitUris = request.body.portraitUri;var crypto = modules.oCrypto;//使用node.js的crypto模块var shasum = crypto.createHash('sha1');//调用crypto模块的sha1哈希加密算法var appSecret = 'xxxxxx';//这里换成你的融云appSecretvar nonce = parseInt(Math.random()*0xffffff);//获取随机数var timestamp = Date.parse(new Date())/1000;//获取时间戳shasum.update(appSecret+nonce+timestamp)//拼接字符串var sign = shasum.digest('hex');//获取哈希计算后的值//融云的每个API请求都需要这样的headervar options = {  url:"http://api.cn.ronghub.com/user/getToken.json",  headers:{    'App-Key':'xxxxxxxxxx',//这里换成你的APP-Key    'Nonce':nonce,    'Timestamp':timestamp,    'Signature':sign  },  //这里是获取token需要的表单参数  form:{'userId':userId,'name':name,'portraitUri':portraitUris}}/***发起Post请求*///获取Http模块var myhttp = modules.oHttp;//往http://api.cn.ronghub.com/user/getToken.json发起POST请求myhttp.post(options, function(err,httpResponse,body){if(err){  return console.error('rongcloud failed:', err);}  response.end(JSON.stringify(body));});}                                                                                    

android 客户端调用:

 private void getTokenFromCloud() {        AsyncCustomEndpoints ace = new AsyncCustomEndpoints();//第一个参数是上下文对象,第二个参数是云端逻辑的方法名称,第三个参数是上传到云端逻辑的参数列表(JSONObject cloudCodeParams),第四个参数是回调类//构建JSONObject来传递表单参数到Bmob云端逻辑        JSONObject cloudCodeParams = new JSONObject();        try {            cloudCodeParams.put("userId", Constant.RuserId);            cloudCodeParams.put("name", Constant.RuserName);            cloudCodeParams.put("portraitUri", Constant.RuserIcon);        } catch (JSONException e) {            e.printStackTrace();        }        ace.callEndpoint("getToken", cloudCodeParams, new CloudCodeListener() {            @Override            public void done(Object object, BmobException e) {                if (e == null) {                    String result = object.toString();                    HD.TLOG("云端逻辑返回值:" + result);                } else {                    HD.LOG(" " + e.getMessage());                }            }        });    }

这样就可以啦!
如果大家有什么疑问可以参考融云开源Server端的实现(^__^)

1 0
原创粉丝点击