stevenschobert / instafeed.js

A simple Instagram JavaScript plugin for your website
https://instafeedjs.com
MIT License
3.51k stars 859 forks source link
instagram instagram-api javascript

Instafeed.js

Build Status npm version

Instafeed.js is a simple way to display your Instagram photos on your website.

Version 2 of Instafeed.js is now available, powered by the new Instagram Basic Display API.

For help upgrading from v1, see the v2 migration guide.

Hosted Alternative

When I originally wrote Instafeed.js in 2012, I wanted to create an easy way to quickly add your Instagram photos to your website. I like to think I was able to do that, in large part thanks to the public API Instagram had at the time.

Unfortunately, Facebook has made this process a lot more complex than it used to be. The largest problem is that managing API tokens now requires a server-side component, which I can’t provide through Instafeed.js alone.

If you're looking for a turnkey solution that manages tokens for you, or you need more advanced features like hashtag feeds, I recommend looking at Behold. It's a paid service, but it has a free tier that will work for smaller projects.

Check out Behold

Installation

Setting up Instafeed is pretty straight-forward - there are 3 main steps.

  1. Create a Facebook app linked to Instagram, and add yourself as a test user. See Managing User Tokens.
  2. Create an access token and provide it to an Instagram Token service
  3. Add the instafeed.js script to your web page and provide some simple options. See Basic Usage
<script type="text/javascript" src="https://github.com/stevenschobert/instafeed.js/raw/master/path/to/instafeed.min.js"></script>

Note: Instafeed.js is also compatible with require.js and commonJS exports

Basic Usage

<div id="instafeed"></div>

<script type="text/javascript">
    var feed = new Instafeed({
      accessToken: 'your-token'
    });
    feed.run();
</script>

Instafeed will automatically look for a <div id="instafeed"></div> and fill it with linked thumbnails. Of course, you can easily change this behavior using standard options. Also check out the advanced options for some advanced ways of customizing Instafeed.js.

Requirements

Options

Here are some of the most commonly used options:

Key Default Value Valid types Description
accessToken null String, Function Required. The Instagram access token, either as a string, or a function which returns a string
debug false Boolean Set to true to display debugging information
filter null Function A function used to exclude images from your results. The function will be given the image data as an argument, and expects the function to return a boolean.
limit null Number Display a maximum of this many posts
sort null Function A custom function to sort the media, rather than the default 'most recent' sorting
target 'instafeed' String, DOM Element Either the ID or the DOM element itself where you want to add the images.
template '<a href="https://github.com/stevenschobert/instafeed.js/blob/master/{{link}}"><img title="{{caption}}" src="https://github.com/stevenschobert/instafeed.js/raw/master/{{image}}" /></a>' String A mustache template used to produce HTML for the document.
transform null Function A function used to transform the image data before it is rendered.

See Options in the wiki for the complete reference.

Templating

The easiest way to control the way Instafeed.js looks on your website is to use the template option. You can write your own HTML markup and it will be used for every image that Instafeed.js fetches. See Templating.

Changelog

See CHANGELOG.md.