Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Instagram API-如何检索用户在Instagram上关注的用户列表_Instagram_Instagram Api - Fatal编程技术网

Instagram API-如何检索用户在Instagram上关注的用户列表

Instagram API-如何检索用户在Instagram上关注的用户列表,instagram,instagram-api,Instagram,Instagram Api,我想知道如何检索用户在Instagram上关注的用户列表。这是因为这个特定的用户是我关注的人。因此,我可以在Instagram应用程序上访问他/她的照片和他的追随者 我如何使用Instagram API来实现这一点?这样做合法吗?您可以使用以下Instagram API端点获取用户正在跟踪的人员列表 https://api.instagram.com/v1/users/{user id}/如下?access_token=access-token 以下是该端点的完整文档。得到 下面是执行该端点的一

我想知道如何检索用户在Instagram上关注的用户列表。这是因为这个特定的用户是我关注的人。因此,我可以在Instagram应用程序上访问他/她的照片和他的追随者


我如何使用Instagram API来实现这一点?这样做合法吗?

您可以使用以下Instagram API端点获取用户正在跟踪的人员列表

https://api.instagram.com/v1/users/{user id}/如下?access_token=access-token

以下是该端点的完整文档。得到

下面是执行该端点的一个示例响应。

由于此端点需要
用户id
(而不是
用户名
),根据您编写API客户端的方式,您可能需要使用用户名调用端点,然后从响应中获取用户id,并将其传递到上面的
/users/user id/follows
端点,以获取追随者列表


,但考虑到他们的API中记录了它,再看看使用条款,我不认为这样做不合法。

Shiva的答案不再适用。Instagram有一段时间不支持API调用“/users/{user id}/follows”(该调用在2016年被禁用)

有一段时间,您只能通过“/users/self/follows”端点获得自己的关注者/追随者,但Instagram在2018年4月禁用了该功能(剑桥分析版)。你可以


据我所知(目前),没有一项服务(官方或非官方)可以让你获得用户(甚至是你自己)的追随者/追随者。

你可以使用。Instagram已经设置了一些速率限制,因此您必须使用多个帐户或等待15分钟以进行下一次运行。

Instagram的其余API已停止使用。但是您可以使用GraphQL获得所需的数据。在这里您可以找到一个概述:

我最近几天一直在为chrome开发Instagram扩展,我得到了以下训练:

首先,您需要知道,如果用户配置文件是公共的,或者您已登录并且正在跟踪该用户,那么这可以工作

我不知道为什么它会这样工作,但可能在您登录时设置了一些cookie,这些cookie在获取私人配置文件时会在后端进行检查

现在我将与您分享一个ajax示例,但是如果您不使用jquery,您可以找到其他更适合您的示例

另外,您可以注意到,我们有两个查询散列值,分别用于关注者和关注者,以及其他不同的查询

let config = {
  followers: {
    hash: 'c76146de99bb02f6415203be841dd25a',
    path: 'edge_followed_by'
  },
  followings: {
    hash: 'd04b0a864b4b54837c0d870b0e77e076',
    path: 'edge_follow'
  }
};
您可以从
https://www.instagram.com/user_name/?__a=1
as
response.graphql.user.id

之后是您收到的第一部分用户的响应,因为每个请求的限制是50个用户:

let after = response.data.user[list].page_info.end_cursor

let data = {followers: [], followings: []};

function getFollows (user, list = 'followers', after = null) {
  $.get(`https://www.instagram.com/graphql/query/?query_hash=${config[list].hash}&variables=${encodeURIComponent(JSON.stringify({
    "id": user.id,
    "include_reel": true,
    "fetch_mutual": true,
    "first": 50,
    "after": after
  }))}`, function (response) {
    data[list].push(...response.data.user[config[list].path].edges);
    if (response.data.user[config[list].path].page_info.has_next_page) {
      setTimeout(function () {
        getFollows(user, list, response.data.user[config[list].path].page_info.end_cursor);
      }, 1000);
    } else if (list === 'followers') {
      getFollows(user, 'followings');
    } else {
      alert('DONE!');
      console.log(followers);
      console.log(followings);
    }
  });
}
您可能会使用这个instagram外的网站,但我没有尝试,您可能需要一些标题来匹配instagram页面上的标题

如果您需要这些头文件的一些附加数据,您可以在
窗口中找到这些数据

您可以使用以下方法获取此信息:

let $script = JSON.parse(document.body.innerHTML.match(/<script type="text\/javascript">window\._sharedData = (.*)<\/script>/)[1].slice(0, -1));
let$script=JSON.parse(document.body.innerHTML.match(/window\.\u sharedData=(.*)/)[1]。切片(0,-1));
这都是我的


希望它能帮到你

这里有一种方法可以通过浏览器和一些复制粘贴(一种基于Deep Seeker答案的纯javascript解决方案)获取用户正在跟踪的人员列表:

  • 获取用户id(在浏览器中,导航到并查找响应->图形QL->用户->id[来自深度搜索者的答案])

  • 打开另一个浏览器窗口

  • 打开浏览器控制台并将其粘贴到其中
    选项={
    userId:your_user_id,
    列表:1//1表示关注者,2表示关注者
    
    }
    我根据在Instagram上获取所有followers和followers的方法制定了自己的方法。只需复制此代码,粘贴到浏览器控制台并等待几秒钟

    您需要使用选项卡中的浏览器控制台使其正常工作

    let username = 'USERNAME'
    let followers = [], followings = []
    try {
      let res = await fetch(`https://www.instagram.com/${username}/?__a=1`)
    
      res = await res.json()
      let userId = res.graphql.user.id
    
      let after = null, has_next = true
      while (has_next) {
        await fetch(`https://www.instagram.com/graphql/query/?query_hash=c76146de99bb02f6415203be841dd25a&variables=` + encodeURIComponent(JSON.stringify({
          id: userId,
          include_reel: true,
          fetch_mutual: true,
          first: 50,
          after: after
        }))).then(res => res.json()).then(res => {
          has_next = res.data.user.edge_followed_by.page_info.has_next_page
          after = res.data.user.edge_followed_by.page_info.end_cursor
          followers = followers.concat(res.data.user.edge_followed_by.edges.map(({node}) => {
            return {
              username: node.username,
              full_name: node.full_name
            }
          }))
        })
      }
      console.log('Followers', followers)
    
      has_next = true
      after = null
      while (has_next) {
        await fetch(`https://www.instagram.com/graphql/query/?query_hash=d04b0a864b4b54837c0d870b0e77e076&variables=` + encodeURIComponent(JSON.stringify({
          id: userId,
          include_reel: true,
          fetch_mutual: true,
          first: 50,
          after: after
        }))).then(res => res.json()).then(res => {
          has_next = res.data.user.edge_follow.page_info.has_next_page
          after = res.data.user.edge_follow.page_info.end_cursor
          followings = followings.concat(res.data.user.edge_follow.edges.map(({node}) => {
            return {
              username: node.username,
              full_name: node.full_name
            }
          }))
        })
      }
      console.log('Followings', followings)
    } catch (err) {
      console.log('Invalid username')
    }
    

    还有另一种方法。Instapy为我们提供了一套用于实现此目的的API

    下面是一个简单的代码,可以用于此。我们需要传递所需追随者的数量,如果我们需要所有追随者列表,我们需要传递完整作为数量的参数值。包含列表的文件将存储在本地

    只需编写一个简单的pip安装命令

    pip install instapy 
    
    示例代码

    from instapy import InstaPy
    
    user = <Username>
    password = <password>
    gecko_path = <geckodriver path>
    #instapy uses this internally
    session = InstaPy(username=user, password=password,geckodriver_path= gecko_path)
    session.login()
    followers = session.grab_followers(username=user,amount=40)
    print(followers)
    following = session.grab_following(username=user,amount=40)
    print(following)
    session.end()
    
    从instapy导入instapy
    用户=
    密码=
    壁虎路径=
    #instapy在内部使用此功能
    会话=InstaPy(用户名=用户,密码=密码,geckodriver\u路径=gecko\u路径)
    session.login()
    followers=session.grab_followers(用户名=user,金额=40)
    印刷品(追随者)
    following=session.grab\u following(用户名=user,金额=40)
    打印(以下)
    会议结束()
    

    链接到其文档:

    是,截至2016年6月1日。现在你只能获得你自己的追随者/追随者的列表。目前,
    follower\u list
    范围在沙盒中处于状态(不再接受应用程序)。我在我自己的用户上尝试了这个范围,我可以获得我的追随者。这可能不再适用于生产环境,对吗?此api用于获取自己的追随者/以下列表:
    https://api.instagram.com/v1/users/self/follows?access_token=ACCESS-当时Instagram APi还没有瘫痪。2016年6月,它开始瘫痪。对于扎克伯格勋爵对API所做的事情,“阉割”是一个更好的词:)该API用于获得自己的追随者/以下列表:
    https://api.instagram.com/v1/users/self/follows?access_token=ACCESS-令牌
    此API仍然有效吗?我无法在Instagram文档中看到它。不,这已经不可用了。Instagram在Apri开始时禁用了端点