DEV Community

Sagar Chakravarthy
Sagar Chakravarthy

Posted on • Originally published at bpsagar.substack.com

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
});
Enter fullscreen mode Exit fullscreen mode

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 πŸ‘‡

Screenshot of Meaty Meet's configuration screen

πŸ“ 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!

Top comments (2)

Collapse
 
joelbonetr profile image
JoelBonetR πŸ₯‡

Nice one! We do not use Google suite currently but I'll bookmark this post just in case 😁

Thank you for sharing!

Collapse
 
bpsagar profile image
Sagar Chakravarthy

Thanks Joel πŸ™