Instagram 获取用户';s使用帐户用户名而不是用户ID的最新媒体

Instagram 获取用户';s使用帐户用户名而不是用户ID的最新媒体,instagram,instagram-api,Instagram,Instagram Api,因此,我想使用Instagram API获取特定用户(不是我的用户)的最新媒体。Instagram具有以下端点: (GET) https://api.instagram.com/v1/users/{user-id}/media/recent/?access_token=ACCESS-TOKEN 这是一个问题,因为我没有用户的ID(为什么我要,Instagram?)。我所做的是账户用户名(大多数人都会这样),例如@thisisauser 我一直在阅读API文档,但找不到一个端点可以为我提供特定帐

因此,我想使用Instagram API获取特定用户(不是我的用户)的最新媒体。Instagram具有以下端点:

(GET) https://api.instagram.com/v1/users/{user-id}/media/recent/?access_token=ACCESS-TOKEN
这是一个问题,因为我没有用户的ID(为什么我要,Instagram?)。我所做的是账户用户名(大多数人都会这样),例如@thisisauser

我一直在阅读API文档,但找不到一个端点可以为我提供特定帐户用户名的用户ID。我是说,是的,有:

(GET) https://api.instagram.com/v1/users/search?q=jack&access_token=ACCESS-TOKEN
…但它不做我需要它做的事,也就是搜索精确匹配

我还查看了Stack Overflow和其他网站上的其他线程。然而,提供的替代解决方案充其量也值得怀疑

这整件事是一个实际问题,这一事实让我感到惊讶。我的意思是,肯定有一种合法的、Instagram批准的、精确而直接的方式:

  • 通过提供帐户用户名获取用户的最新媒体(这是人们通过…而不是数字序列了解你的)
  • 通过精确匹配搜索获得用户ID,不可能出现多个可能的结果
仅供参考:我正在使用PHP和cURL在服务器端执行此操作


旁注:如果为了将帐户用户名转换为用户ID,我必须向API发出一个单独的请求,那么这只是一个请求的浪费,每小时再请求一次。只是一个观察,以防Instagram团队的任何成员碰巧看到这一点。

您可以查找用户id

像这样:

<html>
<head>
<script src="jquery.js" type="text/javascript" ></script>
<script type="text/javascript">
  $(document).ready(function(){
     $.ajax({
            type: 'GET',
            url: 'https://api.instagram.com/v1/users/self/?access_token=' + window.location.hash.substring(14),
            dataType: 'jsonp'}).done(function(response){
                 var userid = response.data.id; 
            });
  });
</script>
</head>
<body>
</body>
</html>
我认为这样比较好。
您也可以使用php发送json。

我在API中找不到任何可以获取用户名媒体的内容。但是,通过使用搜索端点,您可以找到一个解决方案来获取用户的媒体

由于您使用的是PHP cURL,因此可以执行以下操作:

//this is what was returned by cURL
$response = /*what was returned by the API - see below*/

{
"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"
}]
}

//username I am looking for
$user = 'jack';

//filter array response to find exact username you are looking for
$filter = array_filter($response,function($userdata) use ($user){
    if($userdata['username'] == $user){
        return $userdata;
    }
  });

//now use ID from filtered array to get media
$url = 'https://api.instagram.com/v1/users/' . $filter['id'] . '/media/recent/?access_token=ACCESS-TOKEN';

您可以通过请求以下URL获取用户的所有信息(包括id):

https://www.instagram.com/{username}/?__a=1
例如,这将获取与taylorswift帐户相关的所有信息:

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

顺便说一句:当我说“有问题”时,我指的是使用Instagram前端的公共URL获取用户ID的方法。我在手机ATM上,我在家时会回答。端点上的ID是否与您所寻找的一样?是的,在这种情况下@therock的ID将是232192182,在JSON响应中返回。但是,您提到的端点并未在Instagram API文档中列出,似乎更像是Instagram站点的前端资源。是否
https://api.instagram.com/v1/users/search?q=jack&access_token=ACCESS-令牌
是否将精确匹配(如果存在)作为第一个结果返回?在确认第一个结果完全匹配后,你就不能从中获取ID吗?我想你不明白。我不需要我的用户ID,我需要其他人的用户ID,我唯一拥有的数据是那个人的帐户用户名。另外,我正在做这个服务器端(PHP),没有JavaScript。好的,我要用这个。必须通过单独的请求获取用户ID不是最佳选择,但至少使用此URL并不意味着每小时减少一次API请求。因此,无法获取视频文件。
https://www.instagram.com/taylorswift/?__a=1