我的总体目标如下:
- >从fabric.io(= crashlytics)获取数据到geckoboard仪表板。
据我所知,在crashlytics / fabric方面没有API,所以我有以下想法:
在nodejs中写一个脚本(因为我知道节点js有点,我不是专家),它会:
第4步已经完成,我现在正在处理第1步。 遗憾的是,由于页面无法公开访问,我遇到了问题,因此我需要使用自己的用户帐户进行身份验证。
我已经重复使用了一些代码,这些代码在其他一些网站上进行GET / POST / PUT时效果很好。 REST api,但它似乎不能在这里工作,因为结构将我重定向到登录页面。
然而,当我在网上搜索节点auth时,我发现模块可供人们创建一个处理身份验证的服务器,而我却尝试使用node登录网站。
很有可能我想要实现的目标或我尝试做的方式根本没有意义。但是,由于我没有足够的技能来实现这一点,如果有人能够向我证实,我会感到高兴。至少我知道我正在寻找错误的方向; - )
感谢您的阅读
这是我的代码:
var fs = require('fs');
var https = require('https');
var creds = require('./config/credentials.js');
var date = new Date();
var htmlpage = "";
var authorizationHeader = "Basic " + new Buffer(creds.login + ":" + creds.pwd).toString("base64");
var get_options = {
hostname: "fabric.io",
path: "/my-company-account/ios/apps/app.identifier/answers/stability",
method: "GET",
port: 443,
headers: {
"content-type": "application/json",
"Authorization": authorizationHeader
}
};
var get_req = https.request(get_options, function(res){
res.setEncoding('utf8');
res.on('data', function(chunk){
htmlpage += chunk;
}); // end res.on 'data'
res.on('end', function(){
console.log(htmlpage);
//tmp debug
fs.writeFile('./logs/ac-ios_' + date.getTime() + '.html', htmlpage, function(err){
if (err) {
console.log(err);
}
}); // end write html file
/*var parser = new htmlparser.Parser(handler);
parser.parseComplete(htmlpage);*/
}); // end res.on 'end'
}); // end https.request
get_req.on("error", function(err){
console.log(err);
});
get_req.end();
这给了我以下html:
<html>
<body>You are being <a href="https://fabric.io/login?redirect_url=%2Fwebedia-mobile%2Fios%2Fapps%2Fcom.allocine.applifrance%2Fanswers%2Fstability">redirected</a>.</body>
</html>