Instagram api 在本地主机上工作正常,但在服务器上发送错误 (https://www.instagram.com/$name/?__a=1)
Posted
技术标签:
【中文标题】Instagram api 在本地主机上工作正常,但在服务器上发送错误 (https://www.instagram.com/$name/?__a=1)【英文标题】: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,从您共享的代码块中删除您的访问令牌。 【参考方案1】:这是由于 API 端点正在返回包含 JSON 数据的 HTML 标记。而不是使用response.json()
试试
let profile = response.text()
let parsed_json = JSON.parse(profile)
如果这不起作用,您将不得不手动剥离返回的 XML 的封闭标记。
【讨论】:
以上是关于Instagram api 在本地主机上工作正常,但在服务器上发送错误 (https://www.instagram.com/$name/?__a=1)的主要内容,如果未能解决你的问题,请参考以下文章
AWS RDS SQL 数据库在本地主机上工作——从服务器抛出错误
Datatables 插件在本地主机上工作正常,但在服务器(CPanel)上不工作
Dropzone 在本地主机上正常工作,在远程服务器上引发错误