DEV Community

Opeyemi Obembe
Opeyemi Obembe

Posted on

Exploring APIs for likes and bookmarks

I built a service that reminds people of things they’ve liked or bookmarked (tweets, repos, articles, pictures, etc). Here are notes exploring some APIs for these data.

Twitter (likes)

  • First love. I’ve built many things on Twitter’s API. I’ve also been burnt many times, but then, what’s a bookmark reminder tool without Twitter likes?
  • API still on OAuth 1.0a. All other services I reviewed are on OAuth 2.0.
  • By the way, Twitter now has bookmarks but I doubt people really use it in place of “Like”. One idea is to also allow people connect their Twitter bookmarks to Waytab. Unfortunately, Twitter doesn’t have an API for it as at writing this. (And I doubt they will).

Unsplash (likes)

  • Photo resources come with color value that represents the dominant colour of the photo. This is useful in many ways. An example is using this as background colour while loading photo.
  • App needs to be submitted for review. Process is smooth if you adhere to their use policy though.

Pocket (unread articles)

  • Unlike other OAuth 2.0 APIs, requests requires your consumer_key alongside the access_token.
  • What’s also weird is that the HTTP method for getting [unread] articles is POST.

Github (starred repos)

  • Only issue I have with Github is that only one authorisation callback URL is allowed. This means to test locally, I have to create a separate app that can have a localhost callback URL.

Pinterest (user pins)

  • All authorisation callback URL must be on SSL including localhost. Easier thing to do is to use an app like ngrok to tunnel to your localhost.
  • App needs to be submitted for review.

The services that didn’t make it:

Pinboard (bookmarks)

  • I wanted to include at least one bookmark service. Pinboard was the one that came to mind (what are the others people use these days?). Unfortunately, the API is non OAuth so I dropped it. I can’t deal with handling user passwords.

Youtube (watch later)

  • Youtube deprecated their watch later API. As that’s the most interesting list for me, I dropped adding the service. I may add “liked videos” later but only if I get considerable request for it. Another list that may be interesting is unwatched videos from subscribed channels. I am yet to find a way to pull that though.

Dribbble (likes)

Spotify (likes)

  • I will have to create a “commercial app” on Spotify. (“if… your app or product charges a fee to purchase, promotes using ads or utilizes a freemium model for upsells; you are legally protected as a corporate entity or company”). As there was no clear cost implication, I dropped it.

Instagram (likes)

  • Instagram’s API is so messed up at the moment. It’s a big no-no for now. Plus nothing in the Facebook documentation talks about likes.

Top comments (3)

Collapse
 
botch profile image
BotchM

Could you share the progress? I am working on a similar project for personal use, I am able to get the likes from twitter but not bookmarks. Instagram was easy. Have you thought about how you would link the different social media apps under one account? Do you have to refresh the token for each service?

Collapse
 
websavi profile image
Sagi Avinash Varma

Could you integrate medium.com as well?

Collapse
 
kehers profile image
Opeyemi Obembe

Unfortunately, there is little that can be done with Medium's API :(