JSON输入意外结束,获取带有请求的Instagram JSON数据

时间:2018-11-08 05:33:59

标签: javascript node.js json express instagram-api

我正在尝试显示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

1 个答案:

答案 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以获得更多信息。