如何通过 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 ]&amp;client_id=[ YOU APP Client ID ] 示例:https://api.instagram.com/v1/users/search?q=isharamadhawa&amp;client_id=[enter your id] 你有client_id吗? 是的,我有客户 ID 和访问令牌 您应该就您的具体问题发布另一个问题。我想您已经收到了您在此处发布的内容的答案。

以上是关于如何通过 API 获取 Instagram 头像? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过其 API 从 Instagram 获取用户图像

如何使用新的 Instagram Graph 或 Basic Display API 获取普通用户的个人资料图片(截至 2020 年 6 月 29 日)

如何使用新 API 从 Instagram 获取公共数据或标签?

如何在没有用户交互的情况下获取 instagram access_token(新 api)?

我无法通过 instagram API 获取 instagram 用户的媒体详细信息

Instagram 新 API,按标签获取商品