我正在使用'标签/ media / recent?' Instagram API的端点,我收到错误。当发送的值不可用时,我知道我获得了404页面,因为标签不可用但我该如何处理错误。使用Twitter API,我可以搜索屏幕名称&hemidemisemiquaver'并且它会将我的个人资料数据作为后备广告返回,因为该名称没有个人资料。使用Instagram API,它会返回404页面。
Instagram API文档说明我应该得到一个如下所示的响应对象:
{
"meta": {
"error_type": "OAuthException",
"code": 400,
"error_message": "..."
}
}
我不明白为什么会这样。你明白为什么吗?
app.post('/instaInputQuery', function (req, res, next) {
console.log('INPUT_QUERY: ' + typeof req.body.query); // returns string
var popular_tag_search_tag_name_recent = {
url: 'https://api.instagram.com/v1/tags/ ' + req.body.query + '/media/recent?access_token=' + tokenContainer[0] + '&count=200',
method: 'GET'
};
request(popular_tag_search_tag_name_recent, function (error, response, body) {
if (error && response.statusCode != 200) {
console.error(error);
res.send(error);
} else {
var JSONobjArray = JSON.parse(body);
console.log('*******************************************************'.black.bgGreen);
console.log(JSONobjArray);
console.log('*******************************************************'.black.bgGreen);
res.send(JSONobjArray);
}
});
});
谢谢Vishnu解决问题的一半!
答案 0 :(得分:1)
如果条件使用(错误|| response.statusCode!= 200)insted(error&& response.statusCode!= 200)
更新:删除网址中标记/之后的空格。
试试这个:
app.post('/instaInputQuery', function (req, res, next) {
var popular_tag_search_tag_name_recent = {
url: 'https://api.instagram.com/v1/tags/' + req.body.query + '/media/recent?access_token=' + tokenContainer[0] + '&count=200',
method: 'GET'
};
request(popular_tag_search_tag_name_recent, function (error, response, body) {
if (error || response.statusCode != 200) {
error = error || response;
console.error(error);
res.send(error);
} else {
var JSONobjArray = JSON.parse(body);
console.log('*******************************************************'.black.bgGreen);
console.log(JSONobjArray);
console.log('*******************************************************'.black.bgGreen);
res.send(JSONobjArray);
}
});
});
我希望这会奏效:)