我正在使用JSON在我的网站中嵌入我的图片Feed,URL需要我的用户ID,因此我可以检索此Feed。
那么,我在哪里可以找到/获取我的用户ID?
答案很晚,但我认为这是本主题的最佳答案。希望这很有用。
使用以下网址发出请求时,您可以获取用户信息:
https://www.instagram.com/{username}/?__a=1
E.g:
此网址将获取有关用户名为摇滚的用户的所有信息
https://www.instagram.com/therock/?__a=1
在12月11日到2018年更新,我需要确认此端点仍然有效。您需要在向此站点发送请求之前登录,因为它不再是公共端点。登录步骤也很简单。这是我的演示:https://youtu.be/ec5QhwM6fvc
在4月17日到1818年更新,看起来这个端点仍在工作(但它不再是公共端点),您必须向该端点发送带有额外信息的请求。 (按F12打开开发人员工具栏,然后单击“网络”选项卡并跟踪请求。)
对不起,因为我太忙了。希望这些信息可以帮到你们。嗯,如果你愿意,可以随意给我一个投票。
更新于4月12日至2018年,cameronjonesweb表示此端点不再起作用。当他/她尝试访问此端点时,将返回403状态代码。
获取您的ID,向Instagram API users/self/feed
端点发出经过身份验证的请求。除其他数据外,响应将包含用户名和用户ID。
在6/1/2016 Instagram API changes之后,大多数这些答案都是无效的。现在最好的解决方案是here。转到instagram.com上的Feed,复制任何图片的链接地址,然后将其粘贴到该页面的文本框中。工作就像一个魅力。
截至2014年10月14日,无访问令牌的工作解决方案:
搜索用户名:
https://www.instagram.com/web/search/topsearch/?query=<username>
例:
https://www.instagram.com/web/search/topsearch/?query=therock
这是一个搜索查询。在回复中找到完全匹配的条目,并从条目中获取用户ID。
Go to the api console并在文本字段中复制链接https://api.instagram.com/v1/users/self
并使用您的Instagram ID和密码进行身份验证,您将获得您的身份证明作为回应
这可以通过Instagram的开发者网站上的apigee.com Instagram API访问here来完成。登录后,单击“/ 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
虽然它不再列在API文档页面上,但我发现thread提到你可以使用self
代替user-id
作为users/{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
}
}
如果您使用隐式身份验证必须具有无法找到user_id的问题
我找到了一个方法,例如:
Access Token = 1506417331.18b98f6.8a00c0d293624ded801d5c723a25d3ec
the User id is 1506417331
你会做一个单独的拆分单。 obtenies访问令牌和第一个元素
我认为最好,最简单和最安全的方法是在浏览器中打开你的Instagram个人资料,查看源代码并在主javascript代码中查找用户变量(ctrl + f“user”:{“)。用户变量中的id号应该是是你的身份。
这是代码在编写这个答案时的样子(它可以,也可能在将来改变):
"user":{"username":"...","profile_picture":"...","id":"..........","full_name":"..."}},
以下是如何从用户名中检索用户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;
在浏览器中输入此网址,其中包含您要查找的用户名和访问令牌
https://api.instagram.com/v1/users/search?q=[USERNAME]&access_token=[ACCESS TOKEN]
您可以使用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);
这是一个非常简单的网站,适合我:
或者您可以使用Instagram用户名替换“用户名”
https://www.instagram.com/username/?__a=1
或者您可以登录您的Instagram帐户并使用谷歌开发工具查看已存储的cookie。 'ds_user_id'是您的用户ID
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]
返回用户“self”(id:311176867)
https://api.instagram.com/v1/users/search?q=self&count=1&access_token=[ACCESS TOKEN]
返回用户“super_selfie”(id:1422944651)
工作解决方案~2018
我发现,如果您有访问令牌,您可以在浏览器中执行以下请求:
https://api.instagram.com/v1/users/self?access_token=[VALUE]
实际上,访问令牌包含用户ID(令牌的第一段):
<user-id>.1677aaa.aaa042540a2345d29d11110545e2499
您可以使用this tool provided by Pixel Union获取访问令牌。
首先在Instagram上创建一个应用程序并获取您的应用程序的客户端ID
http://instagram.com/developer/
现在,只需将您的用户名和客户端ID https://api.instagram.com/v1/users/search?q=[Your-username]&client_id=[Your-Client-Id]替换为将Url复制到浏览器窗口即可
您将获得一个Json结果,其中包含有关您帐户的常规信息以及您的数字用户ID
自2016年6月1日api更改以来,大多数方法都已过时
以下对我有用,
window._sharedData.entry_data.ProfilePage[0].user.id
如果运气好的话,您将获得第一次尝试,如果没有,请耐心等待,刷新页面并再试一次。继续做,直到你看到用户ID。祝好运!!
轻松获取用户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“}]}
可以检查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"];
当然,如果Instagram更改其页面格式,则必须调整此代码。
目前没有直接的Instagram API来从用户名获取用户ID。你需要调用GET /users/search API然后迭代结果并检查username
字段值是否等于你的用户名,然后你抓住id
。
我写了这个工具,用于通过用户名检索Instagram ID:Instagram User ID Lookup。
它利用python-instagram库访问API,并包含一个link to the source code(在Django上编写),它说明了Instagram API的各种实现。
更新:添加了port to Ruby on Rails的源代码。
我尝试了所有上述解决方案,但都没有效果。我猜Instagram已经加速了他们的变化。然而,我试过了浏览器控制台方法并且玩了一下,发现这个命令给了我用户ID。
window._sharedData.entry_data.ProfilePage[0].graphql.user.id
您只需访问配置文件页面并在控制台中输入此命令即可。您可能需要刷新页面才能使用此功能。 (由于我的声誉很低,我不得不将此作为答案发布)
你需要使用Instagrams API
将你的username
转换为id
。
如果我没记错的话,你可以使用users/search
找到用户名并从那里获取id