I'm building a site which wants to display recent Instagram images in a carousel, grabbed from a specific geotagged location. I have everything ready to go, but I just can't figure out how to get the data.
I'm using node.js and I want to grab the image URLs server-side and give them to the client for them to make the requests to Instagram to fetch the images. If this hits rate limits or violates Instagram policy then I'll simply cache the images server-side instead. Either way, I have no idea how to get the data I need from Instagram.
The furthest I've got is manually getting an access token using this URL: https://www.instagram.com/oauth/authorize/?client_id=123456&redirect_uri=http://localhost&response_type=token&scope=public_content
Then using that access token I tried the following request in Postman:
https://api.instagram.com/v1/locations/226170293/media/recent?access_token=123456
But it returns the following:
{"pagination": {}, "data": [], "meta": {"code": 200}}
After Googling around a bit, I figured maybe it's because my Instagram app is in sandbox mode. So I went about applying for full access. The request form presents these options:
Which use case best describes your Instagram integration?
- I want to install a third party widget to show Instagram content on my website.
- I want to display hashtag content and public content on my website.
- I want to display my Instagram posts on my website.
- I want to build analytics for my own Instagram account.
- My app is still in development and/or is a test app.
- My app allows non-business users to login and post comments, likes or follow actions.
- My app allows people to login with Instagram and share their own content.
- My product helps brands and advertisers understand, manage their audience and media rights.
- My product helps broadcasters and publishers discover content, get digital rights to media, and share media with proper attribution.
- Other
My requirement falls under the second option, but after selecting it, I'm told:
This use case is not supported. We do not approve the public_content permission for one-off projects such as displaying hashtag based content on your website. As alternative solution, you can show your own Instagram content, or find a company that offers this type of service (content discover, moderation, and display).
And actually, selecting any option apart from the 3 options above "Other" presents a message stating it's not allowed. Even selecting "Other" shows:
We do not accept submissions for integrations that do not fall into one of the approved use cases.
Talk about terrible UX.
I'm seriously considering just scraping the URLs instead, but I'm betting that's definitely against Instagram policy, but what other choice do I have? All I want to do is display some images on a website...