Well, you've probably seen my post about leaving Facebook, and unfortunately, I'm still on Instagram and WhatsApp. Unfortunate as in them being owned by Facebook of course, I still like using both of those applications a lot. Instagram in particular is very nice because it lets me organise photos I took that I find memorable. The one tiny issue I have with Instagram, however, is that it lacks a feature that lets me see the lists of "I'm not following them, but they are following me" and "I'm following them, but they aren't following me."
It's really not that big of a problem, and I completely understand why the feature doesn't exist. It would probably be pretty annoying to a lot of casual users to directly see who they follow, but aren't followed back by them. You could do this by hand; copy and paste all the usernames and cross check, but that's really time consuming. The "I'm not following them, but they are following me" part can also be done by just scrolling endlessly down your list of followers and see which buttons are marked as 'Follow,' but that too is really boring. Neither the app nor the website offers a good solution for this.
"You must not access Instagram's private API by means other than those permitted by Instagram. Use of Instagram's API is subject to a separate set of terms available here: http://instagram.com/about/legal/terms/api/ ("API Terms")."
I'm not a lawyer, of course, and it's not in my interest to find loopholes either. My initial take on this article is that I should be using the official developer API to do what I want to do (in retrospect I should have done that, but I got a bit too carried away with the 'figure stuff out' bit). However, the word 'permitted' is not defined here. That means I have to go and see what the API Terms (Platform Policy as it's titled on the linked page) say.
Skimming through that document gives me two articles, Article 19 and Article 32. I'll talk about Article 19 first, as it's the less relevant one, and it states:
"Don't use follower information for anything other than analytics without our prior permission. For example, don't display these relationships in your app."
Displaying relationships is exactly what I'm doing, and even taking it further and amending it to include the missing bits. The analytics I derive are not for public consumption and aren't included in an application. Due to this, I take this as the less problematic one of the pair.
The worst bit comes in with Article 32, which states:
"Don't reverse engineer the Instagram APIs or any of Instagram's apps."
Ah... I think I already lost. This article isn't exactly up for a debate or any interpretation whatsoever, which is a shame. Documenting the entire process of solving the problem would have been very enjoyable for me, but it seems like I can't really do that.
I probably should have registered a client with the API for this, but it was still a lot of fun tinkering around with HTTP requests and cool new browser features.
Don't tell anybody about it, okay? Especially not Instagram.
— Evrim Öztamur at Thu, 25 January 2017 13:20:42 GMT from Amsterdam, NL