feature-requests icon indicating copy to clipboard operation
feature-requests copied to clipboard

Google Meet support

Open jhmk opened this issue 6 years ago • 64 comments

Normally RC is just supporting Jitsi & BigBlueButton for Video Conference. By changing the Domain in the settings for Jitsi to "hangouts.google.com/hangouts/_" you can use hangouts at the moment because a new Meeting will be created when opening this URL.

But because Hangouts will be deactivated this year and the new Google Meet don't support auto-creating a meeting URL by opening an URL this will stop working.

So it needs to push a request to generate a meeting. Docs: https://developers.google.com/calendar/create-events

The request Body would look like this: { "summary": "test", "end": { "dateTime": "2019-03-27T13:00:00-07:00" }, "start": { "dateTime": "2019-03-27T11:00:00-07:00" }, "conferenceData": { "createRequest": { "conferenceSolutionKey": { "type": "hangoutsMeet" } } } }

jhmk avatar Mar 27 '19 12:03 jhmk

You said that's what the request body would like, is that actually what it looks like, or an example?

Do you have any actual API documentation for generating a hangoutsMeet by a POST call to Google's API, with an apikey, that returns a meeting URL?

wreiske avatar Mar 27 '19 20:03 wreiske

Transferred to the feature request repo. This might totally be possible via an app though.

geekgonecrazy avatar Mar 28 '19 01:03 geekgonecrazy

You said that's what the request body would like, is that actually what it looks like, or an example?

Do you have any actual API documentation for generating a hangoutsMeet by a POST call to Google's API, with an apikey, that returns a meeting URL?

This is my working script for: https://developers.google.com/calendar/create-events conferenceDataVersion needs to be set to "1". It also returns a Meeting URL : { "summary": "Test", "end": { "dateTime": "2019-03-30T13:00:00-07:00" }, "start": { "dateTime": "2019-03-30T11:00:00-07:00" }, "conferenceData": { "createRequest": { "conferenceSolutionKey": { "type": "hangoutsMeet" }, "requestId": "abc-zzz-yyy" } } }

Here is more documentation: https://developers.google.com/calendar/v3/reference/events/insert#auth

How to generate a Token: https://www.daimto.com/google-authentication-with-curl/

jhmk avatar Mar 28 '19 13:03 jhmk

is this functionality working and when how?

holzfelix avatar Aug 08 '19 07:08 holzfelix

is this functionality working and when how?

I got it working with some hacks in RC 1.2. But for a good functionality it needs to be implemented in RC.

jhmk avatar Aug 08 '19 08:08 jhmk

So you have to create a calendar event to get a Google Meet link?

graywolf336 avatar Aug 08 '19 17:08 graywolf336

So you have to create a calendar event to get a Google Meet link?

Yes

jhmk avatar Aug 09 '19 13:08 jhmk

Looks like Zulip has the same problem: https://github.com/zulip/zulip/issues/11440

jhmk avatar Aug 09 '19 13:08 jhmk

any update on this?

holzfelix avatar Mar 25 '20 07:03 holzfelix

I also would like to know if there is an update on that. Thx

fredericocarneiro avatar Apr 13 '20 18:04 fredericocarneiro

+1

narzero avatar May 08 '20 08:05 narzero

google meet is important to have in rocket-chat. @jhmk already provided examples how to do it, but google-meets should be available in rocket without hacks i think?

grimuz avatar May 08 '20 09:05 grimuz

does the hack work?

holzfelix avatar May 08 '20 09:05 holzfelix

any update on this?

+1

dombg1337 avatar May 08 '20 10:05 dombg1337

I've tried the hack but no success :(

Em sex, 8 de mai de 2020 06:54, Felix Hohlwegler [email protected] escreveu:

does the hack work?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/RocketChat/feature-requests/issues/65#issuecomment-625738256, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADDSCR7DPY4JHO6VSNOLR2DRQPJGBANCNFSM4HB4IPUQ .

fredericocarneiro avatar May 08 '20 12:05 fredericocarneiro

hm thats poor, thanks for your feedback.

holzfelix avatar May 08 '20 12:05 holzfelix

Now that Google meet has a free tier, it'd be a great feature to add to rocket.chat. The problem is that I couldn't find a way to create a room only by changing the link or something easy like that. I saw that you could call an API that connects to Google calendar to schedule a meeting and then you get a Google meet link. It's kind of tricky.

Em sex, 8 de mai de 2020 09:35, Felix Hohlwegler [email protected] escreveu:

hm thats poor

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/RocketChat/feature-requests/issues/65#issuecomment-625794470, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADDSCRZWFSKYIQX6F5OURZDRQP4CNANCNFSM4HB4IPUQ .

fredericocarneiro avatar May 08 '20 12:05 fredericocarneiro

Google meet has its own api I think: https://developers.google.com/admin-sdk/reports/v1/appendix/usage/customer/meet

holzfelix avatar May 08 '20 12:05 holzfelix

Hi there! That G-suite Api seems its for usage reporting purposes only. At the bottom of this message I´ve post some links that I believe point to the right apis.

The ideia would be something like this:

1 - The admin would create a new calendar on organizarion Google Calendar. I´d be called like "RC meetings" in order to store all meeting events (to create an event and get an "Calendar ID"). 2 - The admin would set this "Calendar ID" and the token or other authentication credential on RC config page in order to allow RC to connect to this specific calendar and create a meeting event (when needed). 3 - When a RC user needs a room, he´d click on a meeting icon and RC would connect on Ooogle calendar api, create an event (setting that exact datetime) and return its google meet link. 4 - The meeting link would be created and now the RC user could access/share it.

What do you think?

Links to Google Calendar API reference : [1] https://cloud.google.com/blog/products/application-development/hangouts-meet-now-available-in-google

[2] https://developers.google.com/calendar/create-events?_ga=2.129193676.-1375015108.1588943678#conferencing

[3] https://developers.google.com/calendar/v3/reference/events/insert

On Fri, May 8, 2020 at 9:44 AM Felix Hohlwegler [email protected] wrote:

Google meet has its own api I think: https://developers.google.com/admin-sdk/reports/v1/appendix/usage/customer/meet

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/RocketChat/feature-requests/issues/65#issuecomment-625797605, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADDSCRZXGLD55SPRORFCSHDRQP5DPANCNFSM4HB4IPUQ .

fredericocarneiro avatar May 08 '20 13:05 fredericocarneiro

Turns out you can now create a new Meet ID by open this URL https://meet.google.com/new (but you need to be Login in your Google account).

jhmk avatar May 08 '20 16:05 jhmk

😮 😮 😮 😮 😮

cool!

So its easy now to add it to RC.

On Fri, May 8, 2020 at 1:54 PM jhmk [email protected] wrote:

Turns out you can now create a new Meet ID by open this URL https://meet.google.com/new (but you need to be Login in your Google account).

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/RocketChat/feature-requests/issues/65#issuecomment-625912906, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADDSCR6HYQAMRPBT55KXXLLRQQ2N5ANCNFSM4HB4IPUQ .

fredericocarneiro avatar May 08 '20 19:05 fredericocarneiro

 cool! So its easy now to add it to RC.

On Fri, May 8, 2020 at 1:54 PM jhmk @.***> wrote: Turns out you can now create a new Meet ID by open this URL https://meet.google.com/new (but you need to be Login in your Google account). — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#65 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADDSCR6HYQAMRPBT55KXXLLRQQ2N5ANCNFSM4HB4IPUQ .

Would it be possible to use Hubot to create a /meet keyword shortcut to generate and share a Google Meet link on a RC channel?

I'm guessing you would just need to have Hubot authenticate against organization Gsuite via API keys and create a webhook for https://meet.google.com/new 🤔

danielelisi avatar May 17 '20 16:05 danielelisi

Would it be possible to use Hubot to create a /meet keyword shortcut to generate and share a Google Meet link on a RC channel?

I'm guessing you would just need to have Hubot authenticate against organization Gsuite via API keys and create a webhook for https://meet.google.com/new 🤔

I would say that to make this simple for non-tech users, having the phone/dial icon would be best. Most regular users won't learn keyword shortcuts. Also you want the meet to be integrated like jitsi. So if you are using the app, that you don't have to leave it.

Raboo avatar May 18 '20 09:05 Raboo

You can add this url to the Jitsi video settings in RC but need to manipulate the code so that RC don't add a random string after the URL. At the moment it will open the URL like this: https://meet.google.com/new/6GdScYHLebu5YfYDFGENERAL

So a option in RC to disable the String Extension would be nice

jhmk avatar May 18 '20 10:05 jhmk

I would prefer a solution which allows to use jitsi and google meet.

holzfelix avatar May 18 '20 10:05 holzfelix

I would prefer a solution which allows to use jitsi and google meet.

Then it needs to be added as third solution in RC. Or you try you change Big Blue Button to jitsi

jhmk avatar May 18 '20 11:05 jhmk

https://g.co/meet/nickname is something that could work either.

Found here: https://gsuiteupdates.googleblog.com/2020/03/hangouts-meet-edu-updates.html

mcsage avatar Jul 01 '20 07:07 mcsage

@mcsage That link seems to only work on a logged-in primary domain. So as long as you're only logged into a single GSuite account other people will see the same meeting, but across accounts, or when logged out it wont work.

You still need the "real" meeting link for other people to join.

mariusmarais avatar Jul 01 '20 08:07 mariusmarais

Maybe someone can expand upon this, but this works for my own purposes. Still not ideal. Basically just a button for @jhmk 's comment with https://meet.google.com/new

Go to the Administration panel > Layout > Custom Scripts > add the following code to the Custom Script for Logged In Users area. Refresh the chat page and there should be a little button on the top-left nav area.

It'd be cool if it could grab the meeting room URL after it's created, and automatically post it in your current Rocket Chat room, but this is beyond me at the moment.

/* ----------------------------------------------------------- */
/* Add a custom Google Meet button to spawn a new meeting room */
const meetBaseUrl = 'https://meet.google.com/new';

/* Google Meet SVG */
const meetSymbol = `
<svg id="icon-meet" viewBox="0 0 468 468" fill="currentColor">
  <path d="M 238.5,421.7502 V 387.5 l -10.80713,-0.6693 C 190.25427,384.5122 154.14002,371.1781 123.02577,348.1858 113.90356,341.4448 96.855431,325.0588 89.019172,315.5 76.281547,299.9624 64.156705,277.9322 58.087931,259.2995 33.715022,184.46833 66.347377,98.13147 136.21304,52.6004 180.89993,23.47821 236.61288,15.06651 289.45785,29.46307 c 66.89494,18.22419 119.73348,75.21313 133.59773,144.09166 2.76051,13.71437 3.78323,43.62827 1.99037,58.21657 -9.18324,74.7226 -63.02462,149.0915 -145.99323,201.6545 -12.70446,8.0486 -38.24275,22.574 -39.68991,22.5744 -0.47455,2e-4 -0.86281,-15.4123 -0.86281,-34.25 z m 50.94617,-140.0311 c 6.6072,-2.9819 10.26549,-6.4304 13.21334,-12.4556 2.69603,-5.5105 2.83071,-6.486 3.19379,-23.1345 l 0.37906,-17.3815 24.38382,24.3686 L 355,277.4847 V 208.5 139.51531 l -24.41499,24.39973 -24.41499,24.39974 -0.33958,-17.40739 c -0.37876,-19.41617 -1.40213,-23.32523 -7.77471,-29.69781 -7.12934,-7.12934 -2.09969,-6.67875 -78.05573,-6.99283 -77.15948,-0.31905 -73.63703,-0.63235 -81.5202,7.25082 -7.54646,7.54646 -7.4798,6.95352 -7.4798,66.52903 0,58.4869 0.071,59.2215 6.44445,66.6675 3.85086,4.4988 8.95106,7.3527 15.05555,8.4243 2.2,0.3862 33.025,0.6368 68.5,0.5569 59.52503,-0.1341 64.80437,-0.2827 68.44617,-1.9262 z"></path>
</svg>
`;

/* Description-Text on Hover: Customize this for different languages */
const meetText = {
		'en': 'New Google Meet Room',
		'de': 'Öffne Google-Konferenz Raum',
		'fr': 'New Google Meet Room',
		'es': 'New Google Meet Room',
		'it': 'New Google Meet Room',
		'nl': 'New Google Meet Room',
		'pl': 'New Google Meet Room',
		'pt': 'New Google Meet Room',
		'ru': 'Смена оформления'
}[defaultUserLanguage()] || 'New Google Meet Room';

function addMeetButton() {
	const buttonMeet = `
	<button class="sidebar__toolbar-button rc-tooltip rc-tooltip--down js-button" aria-label="${meetText}">
		<svg class="rc-icon sidebar__toolbar-button-icon sidebar__toolbar-button-icon--meet" aria-hidden="true" viewBox="0 0 468 468">
			<use xlink:href="#icon-meet"></use>
			${meetSymbol}
		</svg>
	</button>`;

	const sidebarToolbar = $('.sidebar__toolbar');

	// wait for the sidebar toolbar to be visible
	if(!sidebarToolbar.is(':visible')) {
			setTimeout(addMeetButton, 250);
			return;
	}

	var MeetButton = $(`.js-button[aria-label="${meetText}"]`);

	// do nothing if button is already on the screen
	if (MeetButton.is(':visible')) {
			return;
	}

	MeetButton = $(buttonMeet).prependTo(sidebarToolbar);
	MeetButton.on('click', function() {
        var win = window.open(meetBaseUrl, '_blank');
	});
}

$(addMeetButton);

tdlockard avatar Aug 13 '20 19:08 tdlockard

Amazing

holzfelix avatar Aug 15 '20 12:08 holzfelix