如何通过 API 获取 Instagram 头像? [关闭]
Posted
技术标签:
【中文标题】如何通过 API 获取 Instagram 头像? [关闭]【英文标题】:How to get Instagram Profile Picture via API? [closed] 【发布时间】:2018-10-09 17:57:07 【问题描述】:如何使用 Instagram API 提取 Instagram 个人资料图片? 基本图形 API 不包含头像,旧版 API 已停用。
【问题讨论】:
【参考方案1】:使用这些网址之一
https://www.instagram.com/USERNAME/?__a=1 https://i.instagram.com/api/v1/users/USER_ID/info/注意:要获取 Instagram USER_ID
,请使用第一个 URL 和 Instagram USERNAME
编辑:如果您使用第二个 URL,您需要在您的请求中添加一些用户代理。这就是我使用 cURL 的方式。
curl -s -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (Khtml, like Gecko) Mobile/15E148 Instagram 105.0.0.11.118 (iPhone11,8; ios 12_3_1; en_US; en-US; scale=2.00; 828x1792; 165586599)' https://i.instagram.com/api/v1/users/USER_ID/info/
【讨论】:
如果我没有登录 Instagram,它不会给我数据 @ShrijanRegmi 有时您需要指定一些标头,例如 User-Agent。例如。curl -s -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Instagram 105.0.0.11.118 (iPhone11,8; iOS 12_3_1; en_US; en-US; scale=2.00; 828x1792; 165586599)' 'https://www.instagram.com/USERNAME/?__a=1'
截至 2021 年 9 月 10 日,这些似乎都不再起作用。也许答案中缺少说明,但更有可能是 instagram 不允许使用这些 API【参考方案2】:
要获取头像,请使用以下功能:
function getPhoto(a)
// validation for instagram usernames
var regex = new RegExp(/^(?!.*\.\.)(?!.*\.$)[^\W][\w.]0,29$/);
var validation = regex.test(a);
if(validation)
$.get("https://www.instagram.com/"+a+"/?__a=1")
.done(function(data)
// getting the url
var photoURL = data["graphql"]["user"]["profile_pic_url_hd"];
// update img element
$("#photoReturn").attr("src",photoURL)
)
.fail(function()
// code for 404 error
alert('Username was not found!')
)
else
alert('The username is invalid!')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img src="" id="photoReturn">
<br><br>
<input type="text" id="usernameInput">
<button onclick="getPhoto($('#usernameInput').val().trim())">Get profile photo</button>
【讨论】:
问题被标记为 Java 和 android,这是 HTML 和 javascript 由于 CORS 问题,这将不起作用。 如果我没有登录 Instagram,它不会给我数据【参考方案3】:使用Instagram API users endpoint (https://api.instagram.com/v1/users/user-id/?access_token=ACCESS-TOKEN
) 你会收到这样的回复:
"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
使用它您可以获得个人资料图片。
【讨论】:
以及如何从用户名中获取用户ID? 使用此方法轻松获取用户 ID 和用户详细信息:https://api.instagram.com/v1/users/search?q=[ USER NAME ]&client_id=[ YOU APP Client ID ]
示例:https://api.instagram.com/v1/users/search?q=isharamadhawa&client_id=[enter your id]
你有client_id吗?
是的,我有客户 ID 和访问令牌
您应该就您的具体问题发布另一个问题。我想您已经收到了您在此处发布的内容的答案。以上是关于如何通过 API 获取 Instagram 头像? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用新的 Instagram Graph 或 Basic Display API 获取普通用户的个人资料图片(截至 2020 年 6 月 29 日)
如何使用新 API 从 Instagram 获取公共数据或标签?
如何在没有用户交互的情况下获取 instagram access_token(新 api)?