Socket
Socket
Sign inDemoInstall

instagram-api-js-client

Package Overview
Dependencies
0
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    instagram-api-js-client

Simple Instagram Basic Display API Client


Version published
Weekly downloads
4
Maintainers
1
Created
Weekly downloads
 

Readme

Source

Simple Instagram Basic Display API Client

npm version

A simple Javascript client for the Instagram Basic Display API.

Requirements

  • Facebook APP with Instagram Basic Display (in order to generate tokens) or

  • Access token

(Instagram Basic Display API)

Get started

<script type="text/javascript" src="path/to/instagram-api-js-client.js"></script>

<script type="text/javascript">
    const Instagram = window['instagram-api-js-client'].default
    var instagram = new Instagram('VALID_TOKEN')
    ...
</script>
$ npm install instagram-api-js-client

import { Instagram } from 'instagram-api-js-client'
var instagram = new Instagram('VALID_TOKEN')
...

Get access token

Instagram.getAuthorizationUrl({
    appId: 'appId',
    redirectUri: 'redirectUri',
})

Get the url from the console and authorize the app. Then get the code parameter from the redirected url and use it in the following call.

Instagram.getToken({
    appId: 'appId',
    appSecret: 'appSecret',
    redirectUri: 'redirectUri',
    code: 'code',
})

The user id, a short-Lived token and the long-lived token will be displayed in the console. Use this last one from now on.

About token expiration

Public accounts long-lived tokens can be refreshed by using the refreshToken method. Private accounts cannot be refreshed and must grant access again after 60 days (See more)

Basic Usage

Custom options

  • limit: Limit api returned media on each call (default: 99)

  • fetchChildren: Add edge children to media. When false, children will have to be retrieved by another call. (default: true)

  • allowUnsupportedType: Keep returned objects that cannot be mapped into known classes (Image, Video, Album). (default: false)

  • flatten: Album media is flattened to its children (default: false)

// Pass custom options to constructor

var instagram = new Instagram(
    'VALID_TOKEN',
    {
        limit: 2,
        fetchChildren: true,
        allowUnsupportedType: true,
        flatten: false,
    }
)

// Or change options dinamically

instagram.setOptions({
    limit: 2,
    fetchChildren: true,
    allowUnsupportedType: true,
    flatten: false,
})

Example

// Fetch user info

const user = await instagram.fetchSelf()
console.log('user', user)

// Refresh token

const token = instagram
    .refreshToken()
    .then((token) => console.log('token', token))
    .catch((error) => {})

// Single call to get media

const fetchMedia = await instagram.fetchMedia()
console.log('fetchMedia', fetchMedia)

// Gell all media

const media = await instagram.media()
console.log('media', media)

// Get all media throught Iterator

var iterateMedia = []
for await (const item of instagram.mediaIterator()) {
    iterateMedia.push(item)
}
console.log('iterateMedia', iterateMedia)

// Flatten media

const media = await instagram.media()
const flattened = instagram.flatMedia(media)
console.log('flattened', flattened)

// Get children (when `fetchChildren` is false)

const withoutChildren = await instagram.media()
const withChildren = await instagram.media()
for (const item of withChildren) {
    if (item.mediaType === 'CAROUSEL_ALBUM') {
        const children = await instagram.fetchChildren(item.id)
        item.setChildren(children.data)
    }
}
console.log('withoutChildren', withoutChildren)
console.log('withChildren', withChildren)

Keywords

FAQs

Last updated on 14 Jan 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc