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


125

我正在使用JSON将图片供稿嵌入到我的网站中,URL需要我的用户ID,以便我可以检索此供稿。

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


1
我已经找到了一个新的更快的工具,请参见codeofaninja.com/tools/find-instagram-user-id
Emkey

如果有人频繁更改用户名,您可能还想从用户ID中找到用户名。我添加了一个没有访问令牌的答案:stackoverflow.com/a/60744028/1176454
baptx

Answers:


235

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

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

https://www.instagram.com/{username}/?__a=1

例如:

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

https://www.instagram.com/therock/?__a=1

更新于2019年6月20日,该API现在已公开。无需身份验证。

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


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

对不起,因为我太忙了。希望这些信息对您有所帮助。嗯,如果需要的话,请给我点赞成票。


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



1
你是怎样找到它的?
nilfalse

6
打开浏览器的Developer Windows并打开“网络”选项卡时,您可以看到对此URL的请求。
Thinh Vu

3
查找所有者ID。
Gulok

1
这太棒了!很高兴找到。我们希望这不会限制速率。
DED

2
不幸的是,除非您拥有一个特定的用户ID,否则这将无法工作。instagram检查其有效请求的方式是通过标头中提交的cookie。如果cookie属性中存在user_id,则它将被视为有效请求。退房饼干财产上的请求头,当你浏览到显示的URL
Kiong

39

在浏览器中输入您要查找的用户名和访问令牌的URL

https://api.instagram.com/v1/users/search?q=[USERNAME]&access_token=[ACCESS TOKEN]

16
可悲的是 这是有缺陷的:(我们发现,如果您坐着刷新此URL,则可以随机获取其用户名以您搜索的用户名开头的其他用户。例如,如果您正在搜索“ fred1”,但还有一个“ fred123” “,您会得到随机结果!
已向

@frosty我觉得它不太可靠-您的效果更好吗?
sambecker

这是行不通的,因为您需要“ public_content”权限。
desloovere_j

@DannyTuppeny您有没有收到Instagram的回音?
排队

@Queue没有什么用,只是垃圾。最终,我们放弃了,由于6月份的更改(无论如何)完全破坏了我们的集成,我们只是将它们完全从应用程序中剔除。
Danny Tuppeny

18

自1/2016年api更改以来,大多数方法已过时

下面为我​​工作,

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

    window._sharedData.entry_data.ProfilePage[0].user.id
    

如果幸运的话,您会第一次尝试,如果没有,请耐心等待,刷新页面,然后重试。继续做,直到看到用户ID。祝好运!!



18

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

https://api.instagram.com/v1/users/search?q= [ 用户名]&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“}]}}


1
最简单的方法。而且不需要访问令牌!喜欢它:)
Can Vural

1
我还用Java编写了有关帮助的主题,您可以详细了解Latest-tutorial.com/2014/01/27/get-instagram-media-comments
Zeeshan Akhter

6
可悲的是 这是有缺陷的:(我们发现,如果您坐着刷新此URL,则可以随机获取其用户名以您搜索的用户名开头的其他用户。例如,如果您正在搜索“ fred1”,但还有一个“ fred123” “,您会得到随机结果!
已向

1
我同意丹尼(Danny)的观点,这种方法并不总是有效。
CA

2
自Instagram自2016
Malcolm Box

14

无需使用API​​,您可以检查Instagram用户页面以获取ID。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"];

当然,如果Instagram更改其页面格式,则必须修改此代码。


4
不使用API​​似乎是一个坏主意
472084

2
正如Thinh Vu的答案所提到的,您可以添加?__a=1以仅在window._sharedData对象中获取JSON ,以便可以执行curl https://www.instagram.com/username/?__a=1|jq -r .user.id
nisetama

7

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


6

我写了这个工具,用于通过用户名:Instagram User ID Lookup检索Instagram ID 。

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

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


4
通过用户名链接检索Instagram ID的工具不起作用。请更新。
Nishant Nawarkhede 2014年

@JaydeepJadav甚至不是“请”吗?源代码在GitHub上-欢迎您提出拉取请求。
zeantsoi '16

5

我尝试了上述所有解决方案,但均无效果。我想Instagram加快了他们的变革。但是,我尝试了浏览器控制台方法,并进行了一些尝试,发现此命令为我提供了用户ID。

window._sharedData.entry_data.ProfilePage[0].graphql.user.id

您只需访问配置文件的页面,然后在控制台中输入此命令。您可能需要刷新页面才能正常工作。(由于声誉低下,我不得不将其发布为答案)


5

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

搜索用户名:

https://www.instagram.com/web/search/topsearch/?query=<username>

例:

https://www.instagram.com/web/search/topsearch/?query=therock

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


简短而最佳的答案,但是如果找不到用户名,它将显示相关结果。
sanjeet bisht

4

您需要使用Instagrams API将转换usernameid

如果我没记错的话,您可以使用它users/search来找到用户名并从那里获取ID


你能告诉我这样做的方法吗?
穆罕默德·雷达

做什么?搜索是通过API请求实现的users/search,然后您就可以id使用,并根据需要使用它
mlishn 2012年

4
可悲的是 这是有缺陷的:(我们发现,如果您坐着刷新此URL,则可以随机获取其用户名以您搜索的用户名开头的其他用户。例如,如果您正在搜索“ fred1”,但还有一个“ fred123” “,您会得到随机结果!
已向


3

要获取您的ID,请向Instagram API users/self/feed端点进行身份验证的请求。响应中将包含用户名和用户ID等数据。



2

转到api控制台https://api.instagram.com/v1/users/self 在文本字段中复制链接 ,并使用instagram ID和密码进行身份验证,您将获得ID作为回应


2

这可以通过apigee.com做Instagram的API访问这里 Instagram上的开发者网站。登录后,单击“ / users / search” API调用。从那里您可以搜索任何用户名并获取其ID。

{
"data": [{
    "username": "jack",
    "first_name": "Jack",
    "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_66_75sq.jpg",
    "id": "66",
    "last_name": "Dorsey"
},
{
    "username": "sammyjack",
    "first_name": "Sammy",
    "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_29648_75sq_1294520029.jpg",
    "id": "29648",
    "last_name": "Jack"
},
{
    "username": "jacktiddy",
    "first_name": "Jack",
    "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_13096_75sq_1286441317.jpg",
    "id": "13096",
    "last_name": "Tiddy"
}]}


如果您已经有访问代码,也可以这样进行:https : //api.instagram.com/v1/users/search?q=USERNAME&access_token=ACCESS_TOKEN


3
可悲的是 使用用户/搜索存在缺陷:(我们发现,如果您坐着刷新此URL,则可以随机获取其用户名以您搜索的用户名开头的其他用户。例如,如果您正在搜索“ fred1”,但是也是“ fred123”,您将得到随机结果!向instagram报告;等待回复:(
Danny Tuppeny 2014年

2
这不是缺陷,实际上是一种功能。这是一个搜索 API,这意味着它的功能类似于instagram应用中的搜索框。检索用户名的用户ID的正确方法是查询此搜索端点,然后遍历返回的对象并检查用户名是否完全匹配。
约翰·多里安

1
两者都支持,但作为api开发人员,我们可以同意创建一个用户查找端点来避免这种情况,只提供搜索确实很烦人
sricks


2

虽然这不是API文档页面上列出了,我发现了一个线索是提到,您可以使用self代替user-idusers/{user-id}终点,它会返回当前认证用户的信息。

因此,users/self与显式调用相同,users/{some-user-id}并且包含用户ID作为有效负载的一部分。通过身份验证后,只需致电即可users/self,结果将包括当前已认证用户的ID,如下所示:

{
    "data": {
        "id": "1574083",
        "username": "snoopdogg",
        "full_name": "Snoop Dogg",
        "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
        "bio": "This is my bio",
        "website": "http://snoopdogg.com",
        "counts": {
            "media": 1320,
            "follows": 420,
            "followed_by": 3410
        }
}

2

如果您使用的是隐式身份验证,则必须解决以下问题: user_id

我找到了一种方法,例如:

Access Token = 1506417331.18b98f6.8a00c0d293624ded801d5c723a25d3ec the User id is 1506417331

你会做一个由分隔的拆分单吗?遵守令牌和第一个元素


2

我认为最好,最简单,最安全的方法是在浏览器中打开instagram个人资料查看源代码查找用户变量(ctrl + f “ user”:{“在主要javascript代码中)。用户变量中的id号应是你的身份证。

这是编写此答案时的外观代码(它可以并且将来可能会更改):

"user":{"username":"...","profile_picture":"...","id":"..........","full_name":"..."}},

2

这是从用户名检索用户ID的方法:

$url = "https://api.instagram.com/v1/users/search?q=[username]&access_token=[your_token]";
$obj = json_decode(@file_get_contents($url));
echo $obj->data[0]->id;

2

您可以使用Instagram API来执行此操作(用户端点:/ users / search)来完成此操作

如何在php中:

function Request($url) {

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt($ch, CURLOPT_HEADER, 0);  

    $result = curl_exec($ch);

    curl_close($ch);

    return $result;

}

function GetUserID($username, $access_token) {

    $url = "https://api.instagram.com/v1/users/search?q=" . $username . "&access_token=" . $access_token;

    if($result = json_decode(Request($url), true)) {

        return $result['data'][0]['id'];

    }

}

// example:
echo GetUserID('rathienth', $access_token);

3
可悲的是 使用用户/搜索存在缺陷:(我们发现,如果您坐着刷新此URL,则可以随机获取其用户名以您搜索的用户名开头的其他用户。例如,如果您正在搜索“ fred1”,但是也是“ fred123”,您将得到随机结果!向instagram报告;等待回复:(
Danny Tuppeny 2014年

2

这是一个非常简单的网站,非常适合我:

http://www.instaid.co.uk/

或者您可以执行以下操作,用Instagram用户名替换“用户名”

https://www.instagram.com/username/?__a=1

或者,您可以登录自己的Instagram帐户并使用Google开发工具,然后查看已存储的Cookie。“ ds_user_id”是您的用户ID

在此处输入图片说明


尽管此链接可以回答问题,但最好在此处包括答案的基本部分并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。- 评论
-Bugs

@错误我添加了更详细的答案。我只是想为stackoverflow社区做出贡献。
BenEgan1991年

1
https://api.instagram.com/v1/users/search?q="[USERNAME]"&access_token=[ACCESS TOKEN]

请注意引号。

这并不总是返回有效的结果,而是比未引用的结果更常见:

https://api.instagram.com/v1/users/search?q="self"&count=1&access_token=[ACCESS TOKEN] 

返回用户“自己”(标识:311176867)

https://api.instagram.com/v1/users/search?q=self&count=1&access_token=[ACCESS TOKEN]

返回用户“ super_selfie”(ID:1422944651)


1

工作解决方案〜2018

我发现,只要您具有访问令牌,就可以在浏览器中执行以下请求:

https://api.instagram.com/v1/users/self?access_token=[VALUE]

实际上,访问令牌包含用户ID(令牌的第一段):

<user-id>.1677aaa.aaa042540a2345d29d11110545e2499

您可以使用Pixel Union提供的此工具获取访问令牌。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.