Skip to content

JohnnyTheTank/apiNG-plugin-instagram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

apiNG

Join the chat at https://gitter.im/JohnnyTheTank/apiNG npm version Bower version

apiNG-plugin-instagram is a Instagram REST API plugin for apiNG.

Information

⚠️ This use case is not supported anymore. On June 1, 2016 Instagram changed the permissions and all apps moved automatically to Sandbox Mode if they were not approved through the review process.

Documentation

  1. INSTALLATION
    1. Get file
    2. Include file
    3. Add dependency
    4. Add plugin
  2. ACCESS TOKEN
    1. Generate your access_token
    2. Insert your access_token into aping-config.js
  3. USAGE
    1. Models
    2. Requests
    3. Rate limit

1. INSTALLATION

I. Get file

Install via either bower, npm, CDN (jsDelivr) or downloaded files:

II. Include file

Include aping-plugin-instagram.min.js in your apiNG application

<!-- when using bower -->
<script src="bower_components/apiNG-plugin-instagram/dist/aping-plugin-instagram.min.js"></script>

<!-- when using npm -->
<script src="node_modules/aping-plugin-instagram/dist/aping-plugin-instagram.min.js"></script>

<!-- when using cdn file -->
<script src="//cdn.jsdelivr.net/npm/aping-plugin-instagram@latest/dist/aping-plugin-instagram.min.js"></script>

<!-- when using downloaded files -->
<script src="aping-plugin-instagram.min.js"></script>

III. Add dependency

Add the module jtt_aping_instagram as a dependency to your app module:

angular.module('app', ['jtt_aping', 'jtt_aping_instagram']);

IV. Add the plugin

Add the plugin's directive aping-instagram="[]" to your apiNG directive and configure your requests

<aping
    template-url="templates/social.html"
    model="social"
    items="20"
    aping-instagram="[{'tag':'camping'}]">
</aping>

2. ACCESS TOKEN

I. Generate your access_token

  1. Login on instagram.com/developer
  2. Navigate to instagram.com/developer/clients/manage
  3. Register a "New Client ID"
  4. Generate access_token
    1. via browser
      • Open https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token with information from http://instagram.com/developer/clients/manage/
      • Accept the alert from instagram
      • Get your access_token from the url bar of your browser
    2. OR via curl:
            curl \-F 'client_id=CLIENT-ID' \
                -F 'client_secret=CLIENT-SECRET' \
                -F 'grant_type=authorization_code' \
                -F 'redirect_uri=YOUR-REDIRECT-URI' \
                -F 'code=CODE' \
                https://api.instagram.com/oauth/access_token

II. Insert your access_token into aping-config.js

Create and open js/apiNG/aping-config.js in your application folder. It should be look like this snippet:

angular.module('jtt_aping').config(['$provide', function ($provide) {
    $provide.value("apingDefaultSettings", {
        apingApiKeys : {
            instagram : [
                {'access_token':'<YOUR_INSTAGRAM_ACCESS_TOKEN>'},
            ]
            //...
        }
    });
}]);

⚠️ Replace <YOUR_INSTAGRAM_ACCESS_TOKEN> with your instagram access_token

3. USAGE

I. Models

Supported apiNG models

model content support max items
per request
(native) default items
per request
social images, videos full 33 20
image images partly 33 20
video videos partly 33 20

support:

  • full: the source platform provides a full list with usable results
  • partly: the source platfrom provides just partly usable results

II. Requests

Every apiNG plugin expects an array of requests as html attribute.

Requests by Tag

parameter sample default description optional
tag camping Search Tag (without #) no
items 10 20 Items per request (0-33) yes

Sample requests:

  • [{'tag':'soccer'}, {'tag':'nofilter'}]
  • [{'tag':'eagle', 'items':10}]

Requests by User

parameter sample default description optional
userId 416104304 The userId of an instagram user
Username to userId converter
no
items 10 20 Items per request (0-33) yes

Sample request:

  • [{'userId':'416104304', 'items':10}]

Requests by Coordinates

parameter sample default description optional
lat -13.163333 Latitude of the center search coordinate. If used, lng is required yes
lng -72.545556 Longitude of the center search coordinate. If used, lat is required yes
distance 2500 1000 Radius of the center search coordinates in meters. Max distance is 5000 meters yes
items 10 20 Items per request (0-33) yes

Sample request:

  • [{'lat':'-13.163333', 'lng':'-72.545556', 'distance':'2000'}]

Requests by Location

parameter sample default description optional
locationId 24245 The Instagram locationId of a location.
Find Instagram locations here
no
items 10 20 Items per request (0-33) yes

Sample requests:

  • [{'locationId':'24245', 'items':30}]

III. Rate limit

Visit the official Instagram API documentation

The live Rate Limit is 5000 / hour. Global rate limits are applied inclusive of all API calls made by an app per access token over the 1-hour sliding window, regardless of the particular endpoint. Rate limits also apply to invalid or malformed requests.

Licence

MIT