不幸的是我对json docs并不熟悉,所以我有一些问题要附加或连接一些数据。
我有一些代码进入网站,在授权后返回用户数据。下面的代码将通过json doc将用户信息插入到cloudant数据库中,然后获取关联的用户dir数据并以json格式插入数据库。不幸的是,dir数据不包含userid所以我相信我需要将它添加到json doc中,以便我可以通过dashdb在报告中显示用户id和dir数据。
// On return with the authorization code now available
app.get('/oauth_callback', function(req, res) {
var code = req.query.code;
request("https://deviceurl/?client_id=1234&client_secret=678&grant_type=authorization_code&redirect_uri=https://myurl/oauth_callback&code=" + code, function(error, response, body) {
if (!error && response.statusCode == 200) {
var jsonObject = JSON.parse(body);
var access_token = jsonObject.AccessToken;
var user_id = jsonObject.UserID;
// use the returned userid and access token to get the users profile data in json format
request("https://deviceurl/user/" + user_id + ".json/?client_id=1234&client_secret=678&redirect_uri=https://myurl/oauth_callback&access_token=" + access_token + "&some other tokens", function(error, response, body) {
if (!error && response.statusCode == 200) {
var usrinf = JSON.parse(body);
//inserts into my cloudant database 1 json doc
mydb.insert({
'User_Info': (body)
});
console.log(body);
res.send(body); // send raw data back to web page just to show its working
}
//while the access token is still active get some dir data
request("https://deviceurl/user/" + user_id + "/dir.json/?client_id=1234&client_secret=678&redirect_uri=https://myurl/oauth_callback&access_token=" + access_token + "&some other tokens", function(error, response, body) {
var dirinf = JSON.parse(body);
if (!error && response.statusCode == 200) {
//inserts in cloudant dir data but need to include id so I know the user
mydb.insert({
'DIR': (dirinf) + ’‘+(user_id)
});
console.log(body);
// res.send(body); // not doing this as not necessary
} else {
res.send("Error in Dir request");
}
})
//else{
// res.send("Error in UsInf request");
// }
})
} else {
res.send("error in authorise token request")
}
})
});
由于user_id在var中我以为我可以直接解决它,但这似乎不起作用。提前谢谢。
答案 0 :(得分:0)
感谢那支团队。昨晚我做了一些研究,发现一旦我得到了JSON概念,我就不会很难将url中的user_id添加为JSON输出中的附加行。一旦我将JSON主体分配给变量,我就可以添加另一个元素并将user_id分配给它。 所以代码片段看起来像这样。
function (error, response, body) {
//assign the JSON body to a variable
var dirinf=JSON.parse(body);
//add an element for userid and add the user_id
dirinf["userid"]=user_id;
再次感谢。