获取 Instagram JSON 数据与请求的 JSON 输入意外结束

Unexpected end of JSON input getting Instagram JSON data with request

我正在尝试显示来自 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);

当我尝试在本地主机中部署它时,出现错误:

SyntaxError: Unexpected end of JSON input

如果您在浏览器中登录了 instagram,您将通过 cookie 进行身份验证,并且一切正常,但如果您未登录,url https://www.instagram.com/apple/?__a=1 会响应403(拒绝访问)错误。这是您的 back-end 代码的情况,因为您没有发送 cookie 或身份验证 headers。

您可能遇到错误,但没有检查请求回调(err 参数)中的错误。

根据 instagram developer documentation,您需要先注册您的应用程序并进行身份验证,然后才能使用 OAuth 凭据执行请求。

查看 request's documentation on OAuth signing 了解更多信息。