Threads is Meta's attempt to disrupt the social media landscape. Whether you care for it or not, there are a lot of users there. And, sometimes, you have to go where the audience is. Here's how I build a really simple PHP tool to post to Threads using their official API. This allows you to send a single status update programatically, or regularly send new items from your RSS feed to an account. You can see the bot in action at https://www.threads.net/@openbenches_org Get the code The code…
Continue reading →
I logged into Twitter using a fresh account last week. No followers, no preferences set. The default experience was an unending slurry of racism and porn. I don't care to use Twitter any more. Whatever good that was there is now drowned in a cess-pit of violent filth. I still have a lot of Tweets embedded on this blog. Using WordPress, it was easy to paste in a link and have it converted to an embed. But I don't want to direct people to a dangerous site. So here's a somewhat automated way to …
Continue reading →
I logged into Twitter using a fresh account last week. No followers, no preferences set. The default experience was an unending slurry of racism and porn. I don't care to use Twitter any more. Whatever good that was there is now drowned in a cess-pit of violent filth. I still have a lot of Tweets embedded on this blog. Using WordPress, it was easy to paste in a link and have it converted to an embed. But I don't want to direct people to a dangerous site. So here's a somewhat automated way to …
Continue reading →
A few weeks ago I was moaning about there being no OpenBanking API for personal use. Thankfully, I was wrong! As pointed out by Dave a company called Nordigen was set up to provide a free Open Banking service. It was quickly bought by GoCardless who said: We believe access to open banking data should be free. We can now offer it at scale to anyone - developers, partners and Fintechs - looking to solve customer problems. And, I'm delighted to report, it works! As a solo developer you can…
Continue reading →
The recent news that MoneyDashboard is suddenly shutting down has exposed a gap in the way OpenBanking works. It is simply impossible for a user to get read-only access to their own data without using an aggregator. And there are very few aggregators around. Why is it impossible for me to get programmatic access to my own data? There are two interlinked reasons which I'd like to discuss. Background OpenBanking is a brilliant idea encoded in an excellent standard wrapped in some very complex …
Continue reading →
People can subscribe to receive my blog via email. This is managed by the JetPack plugin. I want to be able to display something like "Join 1,234 subscribers and receive updates via email". So, how do I get the subscriber count from the API? As documented in the JetPack HTTP API, it is possible to interact with JetPack programmatically. A good starting point is /wp-json/ - that will show you all the API endpoints available on your blog. By filtering on "subscribers", we find: …
Continue reading →
My CDN just asked me for all my Twitter API keys... WTF? This would give them complete access to my app's Twitter account, the ability to send and receive messages, and anything else that my API key allows. Giving them - or anyone - the entire set of credentials would be a very bad idea. What's going on? Twitter's slow-motion collapse and hostility to developers is causing a whole bunch of second-order effects. Lots of services let people log in to them using Twitter. It is (was?!) a…
Continue reading →
Last year, I blogged about how I turned an old eReader into an Information Screen. I've since updated the display to show me three different sets of transport information. At a glance, I can see the next bus, whether there are delays on the Elizabeth Line, and if my regular trains are running. Here's how all three APIs work. Bus The bus is the easiest one of all. Transport for London (TfL) have a set of free APIs. No registration required! You will need to know the ID of your local bus…
Continue reading →
The social network service "Mastodon" allows people to publish posts. People can reply to those posts. Other people can reply to those replies - and so on. What does that look like in the API? Here's a quick guide to the concepts you need to know - and some code to help you visualise conversations. When you scroll through the website, you normally see a list of replies. It looks like this: Because it acts as a one-dimensional list, there's no easy way to figure out which post someone is…
Continue reading →
This is a mixture of lament and how-to guide. Suppose you've reviewed lots of books. It's pretty easy to generate a link to let people buy the book at Amazon or any other online store. But how do you link to a user's local library? You can't. There is no "search every library in the UK" service. You can search the British Library, but they generally don't deliver to your local town centre. Here's how to (almost) search local libraries for books. eBooks eBook behemoth OverDrive rules the…
Continue reading →
M'colleague Charles has introduced me to the most spectacular phrase - "Time To 200". That's a measurement of the length of time it takes a new user to go from signing up to your API to getting their first HTTP 200 response. Think about the last time you started using a new API... Fill in a tediously long registration form Set up billing in case you go over the free trial limits Wait for a confirmation email Unsubscribe from all the marketing emails Find the quickstart documentation Realise …
Continue reading →
(This post written partly to tease my delightful colleague Charles, but also as a way of thinking about user needs.) During a recent Open Data Café, one of the guests made an entirely reasonable point. An API only method of getting data is elitist. Martine Wauben@MHWaubenAlready having my assumptions tested - are APIs elitist? food for thought for me #ODCafe❤️ 3💬 0♻️ 011:44 - Sat 10 April 2021 I'd like to briefly discuss that idea. Downloading a CSV, for example, is simple. CLICK HERE. Done!…
Continue reading →