我正在尝试显示instagram的URL的JSON数据:https://www.instagram.com/apple/?__a=1。
如果将其放在浏览器中,它将显示JSON,但我希望能够通过express获得它,以便我可以尝试使用该URL捕获所需的任何数据
const express = require("express");
const Instagram = require("node-instagram").default;
const keys = require("./config/keys");
const app = express();
const request = require("request");
app.get("/", (req, res) => {
const url = "https://www.instagram.com/apple/?__a=1";
request(url, (err, response, body) => {
const json = JSON.parse(body);
console.log(json);
res.json(request.json);
});
});
app.listen(5000);
当我尝试在localhost中部署它时,出现错误:
SyntaxError: Unexpected end of JSON input
答案 0 :(得分:4)
如果您在浏览器中登录到instagram,则正在通过cookie进行身份验证,并且一切正常,但如果未登录,则URL https://www.instagram.com/apple/?__a=1会响应403(访问被拒绝)错误。后端代码就是这种情况,因为您没有发送cookie或身份验证标头。
您可能会收到错误,但没有检查请求回调(err
参数)中的错误。
根据instagram developer documentation,您需要先注册应用并进行身份验证,然后才能使用OAuth凭据执行请求。
检查request's documentation on OAuth signing以获得更多信息。