This is a quick tutorial to teach you how to integrate your Instagram
feed into your hugo site 1. To keep things
nice and simple I’ve created a demo
theme to get you
started.
The demo is basically a one-page template. The important part:
|
|
On line 1-3 we connect to the Instagram api with 1 parameter:
- access token (which you can generate here)
This returns something like:
{
"pagination": {
"next_url": "https://api.instagram.com/v1/users/30589186/media/recent?access_token=instagram-access-token\u0026count=1\u0026max_id=1352196774743616727_30589186",
"next_max_id": "1352196774743616727_30589186"
},
"meta": {
"code": 200
},
"data": [
{
"attribution": null,
"tags": ["test", "hugo", "wercker", "ifttt"],
"type": "image",
"location": null,
"comments": {
"count": 0
},
"filter": "Amaro",
"created_time": "1475414438",
"link": "https://www.instagram.com/p/BLD981pBazX/",
"likes": {
"count": 3
},
"images": {
"low_resolution": {
"url": "https://scontent.cdninstagram.com/t51.2885-15/s320x320/e35/14488341_1365561496789352_8898975373191020544_n.jpg?ig_cache_key=MTM1MjE5Njc3NDc0MzYxNjcyNw%3D%3D.2",
"width": 320,
"height": 320
},
"thumbnail": {
"url": "https://scontent.cdninstagram.com/t51.2885-15/s150x150/e35/14488341_1365561496789352_8898975373191020544_n.jpg?ig_cache_key=MTM1MjE5Njc3NDc0MzYxNjcyNw%3D%3D.2",
"width": 150,
"height": 150
},
"standard_resolution": {
"url": "https://scontent.cdninstagram.com/t51.2885-15/s640x640/sh0.08/e35/14488341_1365561496789352_8898975373191020544_n.jpg?ig_cache_key=MTM1MjE5Njc3NDc0MzYxNjcyNw%3D%3D.2",
"width": 640,
"height": 640
}
},
"users_in_photo": [],
"caption": {
"created_time": "1475414438",
"text": "Which one to pick? #test #ifttt #wercker #hugo",
"from": {
"username": "alrayyes",
"profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11821796_875675509184288_365567230_a.jpg",
"id": "30589186",
"full_name": ""
},
"id": "17842838194149837"
},
"user_has_liked": false,
"id": "1352196774743616727_30589186",
"user": {
"username": "alrayyes",
"profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11821796_875675509184288_365567230_a.jpg",
"id": "30589186",
"full_name": ""
}
}
]
}Lines 3 - 16 basically just loop through this json and output corresponding html.
The rest of the html is basically styling and using
momentjs to generate pretty human-readable datetimes.
There is one small caveat though, as the generated site is static you need to
rebuild it sporadically to keep the scrobbles up to date. I accomplish this
using a cron job to trigger
wercker ifttt to
trigger a build every time I upload a
photo.
That’s all there is to it. The same principle can also be used to integrate Last.fm into your site. Hopefully this tutorial was clear and concise enough. If not please let me know in the comments below.
-
You really shouldn’t be using products owned by Facebook. Personally I don’t use Instagram anymore, and therefore don’t have a working demo to show. At the time of writing Facebook is closing down the Instagram API so all of this probably won’t work in the not too distant future. ↩︎