node 调用腾讯大数据接口

 

第一步

:进入网址 http://mta.qq.com/mta/base/ctr_err?app_id=1注册如下图点击注册一个应用

 

 

 

 

 

 

======第二步:如下图所示,点击新建应用

第三步:

应用注册如下图点击进入应用管理(http://mta.qq.com/h5/manage/ctr_app_manage?app_id=500582001)

 

 

 

第四步:在应用管理中我们可以看到APP ID以及SECRET KEY以及配置指南,这个复制粘贴到html的最后一个js后</body>之前

 

 

 

第五步  在网址(http://mta.qq.com/mta/overview/ctr_all_app_new?tab=2)这儿查看我们的应用并进行管理

 

第六步:将应用管理的统计代码放到前端html的最后js

 

第七步:写一个封装函数配置参数,注意引用模块,代码如下digdata_tx.js:

 

'use strict';
const md5 = require('md5');
const request = require('request');
exports.bigdata = {
readdata: function(path, params, callback) {
const URL = 'http://mta.qq.com/';
const secret_key = '08cxxxxxxxxxxxxxxx1d5b3027058f';
params.app_id = 5xxxxxxxxxxxxxxxx01;
let paramsArray = new Array();
for(let item in params) {
paramsArray.push(`${item}=${params[item]}`);
}
paramsArray.sort();
let sign = md5(secret_key + paramsArray.join(''));
params.sign = sign;

request.post({
url: URL + path,
form: params
}, function(error, response, body) {
if(!error && response.statusCode == 200) {
let res = JSON.parse(body);
if(res.code !== 0)
callback({msg:res.info + ' !tips: message from tencent'}, null);
else
callback(null, res.data);
} else {
callback(error, null);
}
})
}
};

 

第八步引入上面的js以及相应模块以及写接口请求数据

const joi = require('joi');
const internals = {};
const security = require('../libs/security');
const bigdata_tx = require('../libs/bigdata_tx');
const mongoose = require('mongoose');
const moment = require('moment');
//const yar=require('yar');

{
method: ['post'],
path: '/ctr_core_data',
config: {
tags: ['api'],
description: '应用每天的pv uv vv iv数据',
notes: '跳出率和在线时长是什么参数???',
validate: {
payload: joi.object({
start_date:joi.string().default(moment().subtract(7,'day').format('YYYY-MM-DD')).min(10).max(10).error(new Error('格式必须为(Y-m-d)')).description('开始时间(Y-m-d),默认7天前'),
end_date:joi.string().default(moment().format('YYYY-MM-DD')).min(10).max(10).error(new Error('格式必须为(Y-m-d)')).description('结束时间(Y-m-d)默认当前时间'),
idx:joi.string().default('pv,uv,vv,iv').error(new Error('传入参数必须为字符串类型')).description('使用“,”间隔查询指标,默认pv,uv,vv,iv'),
}),
failAction: FailAction
},
response: {
schema: responseModel
},
},
handler: (request, reply) => {
let cookie = request.state;
if(cookie.logininfo) {
let accountobj = JSON.parse(security.aes.decrypt(cookie.logininfo));
let values={
start_date:request.payload.start_date,
end_date:request.payload.end_date,
idx:request.payload.idx,
}
bigdata_tx.bigdata.readdata('h5/api/ctr_core_data',values,(err,res)=>{
if(err){
reply({code:111,msg:'fail',data:err});
return;
}
reply({code:0,msg:'success',data:res});
})
} else {
reply({
code: 510,
msg: '登录超时,请重新登录!',
data: null
});
}
}
},

posted @ 2018-01-26 14:35  love飞飞  阅读(1103)  评论(0编辑  收藏  举报