Building a Chrome extension to join meetings on time
From concept to implementation of Meaty Meets
š¤Æ Problem
I've lost count of how many times I've accidentally closed a meeting notification and found myself frantically searching through my calendar for the link at the last minute.
So, I started wondering: could I automate the process of opening links just in time for the meeting? Building a browser extension was the only way to open a new tab or window automatically without any user interaction. And I wanted to create a simple MVP to validate the idea.
š”Solution
At my workplace, we use Google Suite and Google Meet so I set out to solve problem for myself for dogfooding (I find dogfooding term amusing). I considered implementing Google OAuth on the server side, however, doing so would introduce a host of complexities. Not only would I have to deploy and maintain a server, but I would also need to seamlessly hand-off the access token from the server to the Chrome extension.
Without a server and in turn no publicly available callback URL, I wasn't sure how to make the post login redirection work, as the Chrome extension's path is only available locally. That's when I discovered Chrome Identity API.
With just a couple of lines of code, I could get the user's access token without the need for any backend or UI. Once the clientId
is configured, the following snippet can be used:
chrome.identity.getAuthToken({ interactive: true }, function(token) {
// Use the token to call the Google Calendar API
});
When interactive
is set to true
, it opens up the Sign in screen for the user to select the Google account. With the returned access token after signing in (which should have read-only access to the calendar), I was able to fetch upcoming meetings and open the URL on time. It was an easy and elegant solution that saved me a lot of time and effort.
I wrapped this solution with a couple of configuration options:
- Customize how early youād like to join the meetings, and
- An option to open meeting attachments as well
Hereās how it looks š
š Final thoughts
Integrating Google authentication with Chrome extension was a breeze. It opens up so many possibilities without needing a complex setup. Browser extensions are great platforms for implementing low-cost side projects, in my case it was actually 0!
I have been using Meaty Meets myself to open meeting links a few minutes in advance and I quite like the convenience (of course I might be biased). If you use Google Suite and Google Meet at work, try out Meaty Meets and share your thoughts. It's free and takes only a couple of minutes to set it up.
In the next article, Iāll write about how I ideated and built the quick chat view right in the extensionās popup. Stay tuned!