现在 (06/2016) 是否还有一种不使用访问令牌来获取 instagram 提要的方法?

Is there still a way to fetch instagram feed without using access token now (06/2016)?

我有一个问题,我的 Instagram API 访问令牌经常过期,我修改了文档并了解到虽然令牌一般不会过期,但 Instagram 可能会决定在任何时候使令牌过期安全原因或任何原因。

我知道当它过期时,我需要设置一个身份验证过程并请求一个新的令牌等等。但问题是我的应用程序只是检索我自己的供稿以显示在我自己的网站上,一旦令牌过期,设置这样的过程就没有意义了,我唯一能做的就是手动检索和更新我的代码中的令牌。

所以我想知道是否还有一种方法可以在不使用访问令牌的情况下获取提要,因为我只是拉取自己的提要。或者有什么其他方法可以解决这个问题吗?

感谢您的帮助。

编辑:您现在只需使用此 link 即可获取个人资料的 json 数据:https://www.instagram.com/anyuser/?__a=1


如果您的配置文件设置为 public 模式,您可以从 json 响应中获取数据,只需写入: https://www.instagram.com/YOURUSERNAME/media

示例:https://www.instagram.com/bestcookingvideos/media

您可以看到 json 结构:http://json.parser.online.fr/

注意:此页面不再有效:https://www.instagram.com/YOURUSERNAME/media

2020.11.17

在答案中,您可以通过 12 最近的 post 通过 https://www.instagram.com/anyuser/?__a=1 获取配置文件详细信息,但问题是这不允许获取媒体分页。所以为此你需要使用

https://instagram.com/graphql/query/?query_id=17888483320059182&variables={"id":"15165085906","first":20,"after":null}

以上路由将return属于该id的相关用户的前20个媒体,当我们需要获取下20个媒体时,我们需要传递初始调用中的end_cursor

更多信息参考 related answer

https://www.instagram.com/anyuser/media 今天停止工作了。您可以改用 https://www.instagram.com/anyuser/?__a=1

2021 更新:由于 instagram 的最新更改,这不再是可靠的解决方案。

原答案:

您可以使用我开发的这个 jquery 库:

https://github.com/BanNsS1/jquery.instagramFeed

不需要api令牌

编辑以下评论:

它只是 jquery 强大的库,允许您加载任何 public instagram 配置文件的前 12 项。

它是如何解决问题的? 加载 1 到 12 个最后的帖子而不需要访问 token/api 键

<script type="text/javascript" src="jquery.instagramFeed.min.js"></script>
<script type="text/javascript">
    (function($){
        $(window).on('load', function(){
            $.instagramFeed({
                'username': 'instagram',
                'container': "#instagram-feed1",
                'display_profile': true,
                'display_biography': true,
                'display_gallery': true,
                'get_raw_json': false,
                'callback': null,
                'styling': true,
                'items': 8,
                'items_per_row': 4,
                'margin': 1 
            });
        });
    })(jQuery);
</script>

想要更多?需要两次点击和一些滚动。

我构建了一个小型 SaaS,使这一切变得简单:https://behold.so - it handles all the messy stuff with the new Instagram API, and just gives you a URL to a feed of posts as JSON. Like this: https://feeds.behold.so/xN3J7TZ59jIdH6IOWQ4d

一旦你有了你的 feed URL,代码就变得很简单了:

fetch('https://feeds.behold.so/xN3J7TZ59jIdH6IOWQ4d')
  .then(data => data.json())
  .then(photos => {
    photos.forEach(({
      id,             // The post ID
      mediaUrl,       // The image source
      permalink,      // URL of the Instagram post
      caption,        // Post caption
      mediaType,      // 'IMAGE', 'VIDEO', or 'CAROUSEL_ALBUM'
      thumbnailUrl,   // Only returned for video posts
      timestamp,      // Post publish date,
      children        // An array of CAROUSEL_ALBUM children. Each with id, mediaUrl, mediaType and thumbnailUrl
    }) => {

      // Step 3. Make magic happen...
      
    });
  });

为 self-promotion 道歉,但事实是在 2022 年没有简单的方法解决这个问题。Meta 故意让事情变得非常困难。