Instagram如何从用户名获取我的用户ID?

Muh*_*eda 114 instagram

我正在使用JSON在我的网站中嵌入我的图片Feed,URL需要我的用户ID,因此我可以检索此Feed.

那么,我在哪里可以找到/获取我的用户ID?

Thi*_* Vu 205

答案很晚,但我认为这是本主题的最佳答案.希望这很有用.

使用以下网址发出请求时,您可以获取用户信息:

https://www.instagram.com/{username}/?__a=1
Run Code Online (Sandbox Code Playgroud)

例如:

此网址将获取有关用户名为therock的用户的所有信息

https://www.instagram.com/therock/?__a=1
Run Code Online (Sandbox Code Playgroud)

在12月11日到2018年更新,我需要确认此端点仍然有效.您需要在向此站点发送请求之前登录,因为它不再是公共端点.登录步骤也很简单.这是我的演示:https: //youtu.be/ec5QhwM6fvc


在4月17日到1818年更新,看起来这个端点仍在工作(但它不再是公共端点),您必须向该端点发送带有额外信息的请求.(按F12打开开发人员工具栏,然后单击"网络"选项卡并跟踪请求.)

对不起,因为我太忙了.希望这些信息可以帮到你们.嗯,如果你愿意,可以随意给我一个投票.


更新于4月12日至2018年,cameronjonesweb表示此端点不再起作用.当他/她尝试访问此端点时,将返回403状态代码.


  • 当您打开浏览器的Developer Windows并打开"网络"选项卡时,您可以看到对此URL的请求. (5认同)
  • 寻找所有者ID. (3认同)
  • 我现在正试图访问此端点403 (3认同)
  • 这几天就停止了工作! (3认同)
  • 你是怎样找到它的? (2认同)
  • 最好的解决方案! (2认同)
  • 不幸的是,除非您有一个已知的特定用户 ID,否则这不起作用。instagram 检查其是否有效请求的方式是通过标头中提交的 cookie。如果 cookie 属性中存在 user_id,它将被视为有效请求。当您导航到显示的 URL 时,检查请求标头上的 cookie 属性 (2认同)

小智 39

在浏览器中输入此网址,其中包含您要查找的用户名和访问令牌

https://api.instagram.com/v1/users/search?q=[USERNAME]&access_token=[ACCESS TOKEN]
Run Code Online (Sandbox Code Playgroud)

  • 可悲的是,这是有缺陷的:(我们发现,如果你刷新这个网址,你可以随机获取其用户名以你搜索的用户名开头的其他用户.例如,如果你正在搜索"fred1"但是还有一个"fred123" ",你会得到随机的结果!报告给Instagram;等待回复:( (15认同)

Zee*_*ter 18

轻松获取用户ID和用户详细信息

https://api.instagram.com/v1/users/search?q= [ USER NAME]&client_id = [您的APP客户ID]

例如:

https://api.instagram.com/v1/users/search?q=zeeshanakhter2009&client_id=enter_your_id

结果:

{ "元":{ "代码":200}, "数据":[{ "用户名": "zeeshanakhter2009", "生物": "http://about.me/zeeshanakhter", "网站":"HTTP: //zeeshanakhter.com","profile_picture":"http://images.ak.instagram.com/profiles/profile_202090411_75sq_1377878261.jpg","full_name":"Zeeshan Akhter","id":"202090411"}]}

  • 可悲的是,这是有缺陷的:(我们发现,如果你刷新这个网址,你可以随机获取其用户名以你搜索的用户名开头的其他用户.例如,如果你正在搜索"fred1"但是还有一个"fred123" ",你会得到随机的结果!报告给Instagram;等待回复:( (6认同)
  • 自2016年6月1日起,Instagram已删除所有client_id支持,因此不再适用 (2认同)

f-s*_*ety 18

自2016年6月1日api更改以来,大多数方法都已过时

以下对我有用,

  • 在您的浏览器上访问instagram说chrome,safari或firefox.
  • 启动开发人员工具,转到控制台选项.
  • 在命令提示符下输入以下命令并按Enter键:

    window._sharedData.entry_data.ProfilePage[0].user.id
    
    Run Code Online (Sandbox Code Playgroud)

如果运气好的话,您将获得第一次尝试,如果没有,请耐心等待,刷新页面并再试一次.继续做,直到你看到用户ID.祝好运!!

  • 这应该是接受的答案.不是第三方软件.两次尝试.得到了身份证. (2认同)

Per*_*ses 14

可以检查Instagram用户页面以获取ID,而不是使用API​​.PHP中的示例代码:

$html = file_get_contents("http://instagram.com/<username>");
$doc = new DOMDocument();
$doc->loadHTML($html);

$xpath = new DOMXPath($doc);
$js = $xpath->query('//body/script[@type="text/javascript"]')->item(1)->nodeValue;

$start = strpos($js, '{');
$end = strrpos($js, ';');
$json = substr($js, $start, $end - $start);

$data = json_decode($json, true);
$data = $data["entry_data"]["UserProfile"][0];
# The "userMedia" entry of $data now has the same structure as the "data" field
# in Instagram API responses to user endpoints queries

echo $data["user"]["id"];
Run Code Online (Sandbox Code Playgroud)

当然,如果Instagram更改其页面格式,则必须调整此代码.

  • 不使用API​​似乎是一个坏主意 (3认同)
  • 正如Thinh Vu提到的答案,您可以添加`?__ a = 1`来获取`window._sharedData`对象中的JSON,这样您就可以执行类似`curl https://www.instagram.com/的操作username /?__ a = 1 | jq -r .user.id`. (2认同)

las*_*gar 11

截至 2018 年 10 月 14 日,没有访问令牌的工作解决方案:

搜索用户名:

https://www.instagram.com/web/search/topsearch/?query=<username>
Run Code Online (Sandbox Code Playgroud)

例子:

https://www.instagram.com/web/search/topsearch/?query=therock
Run Code Online (Sandbox Code Playgroud)

这是一个搜索查询。在回复中找到完全匹配的条目并从条目中获取用户 ID。

  • 这不再有效(2021 年 5 月)- 只是重定向到登录页面 (3认同)
  • 今天(2022 年 6 月)有效。 (3认同)

nul*_*ull 7

目前没有直接的Instagram API来从用户名获取用户ID.您需要调用GET/users/search API,然后迭代结果并检查username字段值是否等于您的用户名,然后获取id.


zea*_*soi 6

我编写了这个工具,用于通过用户名检索Instagram ID:Instagram用户ID查找.

它利用python-instagram库来访问API,并包含源代码链接(在Django上编写),它说明了Instagram API的各种实现.

更新:为Ruby on Rails添加了端口的源代码.

  • **用于通过用户名链接检索Instagram ID的工具无效.**请更新它. (4认同)

小智 5

我尝试了所有上述解决方案,但都没有效果.我猜Instagram已经加速了他们的变化.然而,我试过了浏览器控制台方法并且玩了一下,发现这个命令给了我用户ID.

window._sharedData.entry_data.ProfilePage[0].graphql.user.id
Run Code Online (Sandbox Code Playgroud)

您只需访问配置文件页面并在控制台中输入此命令即可.您可能需要刷新页面才能使用此功能.(由于我的声誉很低,我不得不将此作为答案发布)