【问题标题】:Instagram api working fine on localhost but sending error on server (https://www.instagram.com/${name}/?__a=1)Instagram api 在本地主机上工作正常,但在服务器上发送错误 (https://www.instagram.com/${name}/?__a=1)
【发布时间】:2022-01-23 10:57:43
【问题描述】:

我正在尝试获取用户的一些个人资料信息。它在本地主机上工作,但不在服务器上。我没有在本地/我的电脑上登录 instgram 帐户。看起来它正在尝试登录服务器首先。

  let username = req.query.username;
  if (!username) {
    throw "Please enter a username";
  }      
  let name = username.toLowerCase();

  // console.log("name", name);
  var instagram_url = `https://www.instagram.com/${name}/?__a=1`;
  // console.log("url", instagram_url);
  // let response = await axios.get(
  // `https://api.lamadava.com/v1/user/by/username?username=hamimkivines&access_key=${access_key}
  // );
  let response = await fetch(instagram_url);
  console.log("response -", response); 
 
  let profile = await response.json();
  // console.log("profile", profile);
  return res.status(200).send(profile); 

  **Local response -**
  [Symbol(Response internals)]: {
    url: 'https://www.instagram.com/hamimkivines/?__a=1',
    status: 200,
    statusText: 'OK',
    headers: Headers { [Symbol(map)]: [Object: null prototype] },
    counter: 0
  }


**Server Response**
0|dev  |   [Symbol(Response internals)]: {
0|dev  |     url: 'https://www.instagram.com/accounts/login/',
0|dev  |     status: 200,
0|dev  |     statusText: 'OK',
0|dev  |     headers: Headers { [Symbol(map)]: [Object: null prototype] },
0|dev  |     counter: 1
0|dev  |   }
0|dev  | 
0|dev  | error FetchError: invalid json response body at https://www.instagram.com/accounts/login/ reason: Unexpected token < in JSON at position 0
0|dev  |     at /var/www/html/everlensv2node/node_modules/node-fetch/lib/index.js:273:32
0|dev  |     at processTicksAndRejections (internal/process/task_queues.js:95:5)
0|dev  |     at async getInstagramProfile (/var/www/html/everlensv2node/modules/user/user.controller.js:188:21) {
0|dev  |   type: 'invalid-json'
0|dev  | }

【问题讨论】:

  • 嘿@Sid,从您共享的代码块中删除您的访问令牌。

标签: javascript node.js express instagram-api


【解决方案1】:

这是由于 API 端点正在返回包含 JSON 数据的 HTML 标记。而不是使用response.json()试试

let profile = response.text()
let parsed_json = JSON.parse(profile)

如果这不起作用,您将不得不手动剥离返回的 XML 的封闭标记。

【讨论】:

    猜你喜欢
    • 2015-11-13
    • 2015-08-28
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2014-03-26
    相关资源
    最近更新 更多