Skip to content

Instantly share code, notes, and snippets.

@acoyfellow
Forked from lkLeonov/instaGet
Created May 10, 2017 18:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save acoyfellow/8df1fa457356da21347297929aa7d3ac to your computer and use it in GitHub Desktop.
Save acoyfellow/8df1fa457356da21347297929aa7d3ac to your computer and use it in GitHub Desktop.
How to get media from instagram via XHR
function getMedia(instaData, mediaCount, callback) {
var profileData = instaData.entry_data.ProfilePage[0];
var userID = profileData.user.id;
var totalMedia = profileData.user.media.count;
var mediaCount = mediaCount > totalMedia ? totalMedia : mediaCount;
var csrf_token = instaData.config.csrf_token;
var xhrBody = "ig_user(" + userID + ") { media.after(0, " + mediaCount + ") {nodes {display_src }}}";
var xhr = new XMLHttpRequest();
xhr.open("POST", '/query/', true)
xhr.setRequestHeader("X-CSRFToken", csrf_token);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (this.readyState != 4) return;
callback(this.responseText);
}
xhr.send("q=" + encodeURIComponent(xhrBody));
}
// I want 20 instagram posts from this user
getMedia(window._sharedData, 20, function(data){
console.log(JSON.parse(data));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment