Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get a list of users who have liked specific media on Instagram

Tags:

c#

instagram

Using Instagram API I need to get a list of users who have liked specific media.

The following call should return the list of all users according to the documentation: https://api.instagram.com/v1/media/555/likes?access_token=ACCESS-TOKEN

However, I get only 120 users with no pagination parameters.

Is there any way to keep requesting the rest?

If you need the code:

String requestLikes = "https://api.instagram.com/v1/media/" + mediaID + "/likes?access_token=" + access_token + "&count=0";
        // Create a request for the URL. 
        request = WebRequest.Create(requestLikes);
        // Get the response.
        response = request.GetResponse();
        //Remaining calls
        AddOrUpdateAppSettings("remainingCalls", response.Headers["X-Ratelimit-Remaining"]);
        // Display the status.
        Console.WriteLine(((HttpWebResponse)response).StatusDescription);
        // Get the stream containing content returned by the server.
        dataStream = response.GetResponseStream();
        // Open the stream using a StreamReader for easy access.
        reader = new StreamReader(dataStream);
        // Read the content.
        responseFromServer = reader.ReadToEnd();
like image 973
Marion Avatar asked Oct 26 '25 04:10

Marion


1 Answers

Unfortunately they only provide the latest 120 likes in newest-to-oldest order with no pagination. You can test this by requesting a photo then liking it and you'll see that your account is on top of the list.

The only work around is to set up a job to periodically cache likes beginning shortly after the photo is first posted. Since you're always getting the newest 120 you can get them all that way. You can create a subscription to a user using the realtime api and get a ping when your user posts a new photo, then start caching likes. A decaying rate would be advised - maybe cache a couple times the first hour after it's posted, then less and less frequently the longer it's been.

like image 195
Calvin Schemanski Avatar answered Oct 27 '25 16:10

Calvin Schemanski



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!