GithubHelp home page GithubHelp logo

ronefel / moodle-mod_googlemeet Goto Github PK

View Code? Open in Web Editor NEW
19.0 8.0 14.0 477 KB

Google Meet resource module plugin for Moodle 3.7+

License: Other

PHP 85.29% CSS 2.33% Mustache 12.38%
moodle moodle-plugin moodle-activity google-meet php

moodle-mod_googlemeet's Introduction

Google Meet™ for Moodle

The Google Meet™ for Moodle plugin allows the teacher, without having to leave Moodle, to create a Google Meet room and make available to the students the recordings of the room saved in Google Drive.

To create the Google Meet meeting room from Moodle, the Google Meet™ plugin for Moodle needs an active OAuth 2 service for Google. To learn how to set up an OAuth 2 service for Google, click here.

screen1.png screen2.png screen3.png screen4.png screen5.png screen6.png

Requirements

Moodle 3.7+

PHP 7.0+

Installation

  1. Copy this plugin to the mod\googlemeet folder on the server
  2. Login as administrator
  3. Go to Site Administrator > Notification
  4. Install the plugin

This module is intended for Moodle 3.7 and above.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

License

2020 Rone Santos [email protected]

The GNU GENERAL PUBLIC LICENSE. Please see License File for more information.

©2018 Google LLC All rights reserved.
Google Meet and the Google Meet logo are registered trademarks of Google LLC.

moodle-mod_googlemeet's People

Contributors

ronefel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moodle-mod_googlemeet's Issues

dmlreadexception in PostgreSQL

After creating a new instance, I get a database error: relation does not exist.
Only a (working) button for entering the room is created, then the debugging shows this output:

More information about this error

×Debug info: ERROR: relation "mdl_googlemeet_events" does not exist
LINE 2: FROM mdl_googlemeet_events
^
SELECT id,eventdate,duration
FROM mdl_googlemeet_events
WHERE googlemeetid = 1
AND (eventdate > 16070288838828 OR eventdate = 160798272910)
LIMIT 5
[array (
)]
Error code: dmlreadexception
×Stack trace:
line 486 of /lib/dml/moodle_database.php: dml_read_exception thrown
line 329 of /lib/dml/pgsql_native_moodle_database.php: call to moodle_database->query_end()
line 920 of /lib/dml/pgsql_native_moodle_database.php: call to pgsql_native_moodle_database->query_end()
line 465 of /mod/googlemeet/locallib.php: call to pgsql_native_moodle_database->get_records_sql()
line 82 of /mod/googlemeet/view.php: call to googlemeet_get_upcoming_events()


A SINCRONIZAÇÃO NÃO É REALIZADA SE ALGUM VÍDEO NÃO TERMINA O PROCESSAMENTO

Percebi um erro na sincronização. O plugin só sincroniza se todos os vídeos estiverem disponíveis (processados), mas se encontrar algum vídeo que esteja processando, o plugin não sincroniza nenhum (mesmo que já existam vídeos disponíveis). Você pode fazer com que o plugin sincronize os vídeos disponíveis e pule aquele que precisa ser processado para atualizar a tabela de gravações? Às vezes, o Google Drive leva várias horas (até dias) para concluir o processamento de um vídeo e isso é um obstáculo para conseguir a sincronização dos outros vídeos já disponíveis.
Ficaremos muito gratos.

Enable Cache Javascript

Thank you for developing an amazing plugin. Please disable the requirement to enable Cache Javascript on Moodle.
I cannot enable it because when I do, menus don't work on my site. They freeze.
I know you said you would, but maybe you forgot.

Thank you.

Error

"error": "idpiframe_initialization_failed",
"details": "You have created a new client application that uses libraries for user authentication or authorization that will soon be deprecated. New clients must use the new libraries instead; existing clients must also migrate before these libraries are deprecated. See the Migration Guide for more information."

Sync of Recordings working intermittently

We have several classes using this plugin, some seem to sync all of the videos fine, others have stopped after a number of sessions and the refuse to sync new videos after that.

when a sync is attempted it appears to start, however there are no changes to the list of recordings and the date of last sync does not change.

We are using the latest version of the plugin. The user syncing is the same as the meeting organiser.

deprecated

{
"error": "idpiframe_initialization_failed",
"details": "You have created a new client application that uses libraries for user authentication or authorization that will soon be deprecated. New clients must use the new libraries instead; existing clients must also migrate before these libraries are deprecated. See the Migration Guide for more information."
}

Include message file in recording list might be great.

Thank you for creating this plugin, it is very convenient for integrate google meet with Moodle!
Google save message to another file, if the message file can be download direct in Moodle it would be more convenience!

The "Generate Room URL" button does not work

The "Generate Room URL" button does not work. I have this error on the console. Any solution?

Uncaught TypeError: Cannot read property 'event' of undefined at modedit.php:4476 at Object.execCb (require.min.js:5) at b.check (require.min.js:5) at b.<anonymous> (require.min.js:5) at require.min.js:5 at require.min.js:5 at each (require.min.js:5) at b.emit (require.min.js:5) at b.check (require.min.js:5) at b.enable (require.min.js:5) require.min.js:5 Uncaught Error: No define call for gapi http://requirejs.org/docs/errors.html#nodefine at makeError (require.min.js:5) at Object.completeLoad (require.min.js:5) at HTMLScriptElement.onScriptLoad (require.min.js:5)

Undefined constant "MESSAGE_DEFAULT_ENABLED"

Installing this plugin with Moodle 3.11 fails with:

Exception - Undefined constant "MESSAGE_DEFAULT_ENABLED"

More information about this error
Debug info:
Error code: generalexceptionmessage
Stack trace:

    line 30 of /mod/googlemeet/db/messages.php: Error thrown
    line 708 of /lib/messagelib.php: call to require()
    line 421 of /lib/messagelib.php: call to message_get_providers_from_file()
    line 863 of /lib/upgradelib.php: call to message_update_providers()
    line 576 of /lib/upgradelib.php: call to upgrade_plugins_modules()
    line 1929 of /lib/upgradelib.php: call to upgrade_plugins()
    line 713 of /admin/index.php: call to upgrade_noncore()

Plugin moodle/google meet

Good morning,
I don't know if I configured the plugin correctly but it gives me the following error.Can you help me?
errore

Google Meet Warning

Hi Team,

When you create a google meet link a warning is displayed when the Moodle debugger is enabled. (Moodle version 3.11)

Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in /mod/googlemeet/locallib.php on line 121

Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in /mod/googlemeet/locallib.php on line 121

We suggest this, because for php 8.0 version it will be something mandatory.

(- if (isset($googlemeet->days) && array_key_exists($wdaydesc[$dayinfo['wday']], $googlemeet->days)) {)
(+ if (isset($googlemeet->days) && property_exists($googlemeet->days, $wdaydesc[$dayinfo['wday']])) {)

Screen Shot 2022-03-25 at 10 50 43 AM

Could you help me, please?

I Press the button to generate Meet URL and nothing happens

I press the button to generate the meet url and nothing happens.
The developer console says the following:

`first.js:234 Uncaught TypeError: Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.
    at j (first.js:234)
    at HTMLButtonElement.k (first.js:234)`

Javascript cache is enabled.

Controles de organizador - Habilitar Controle de participação

Obrigado por compartilhar este plugin com a comunidade, está sendo muito útil para todos.
Gostaria de sugerir um aprimoramento:

Ao criar um evento no meet pelo Plugin, caso eu queira habilitar o recurso de Controle de participação (Que gera um relatório de participação e envia por e-mail ao organizador, e também fica disponível no Drive no diretório Relatório de Reuniões) eu preciso ir na Agenda, editar o evento e clicar no ícone de engrenagem e habilitar esta a opção.

Seria útil ter esta opção integrada no plugin e ter a lista de presença listada no moodle assim como aparece a lista de gravações.

Undefined property: stdClass::$addmultiply

When creating a new instance, I get:

PHP Notice:  Undefined property: stdClass::$addmultiply in /home/mudrd8mz/www/mdk/m310/moodle/mod/googlemeet/mod_form.php on line 96, referer: http://glux/mdk/m310/course/view.php?id=2&notifyeditingon=1

Can´t sync google drive for recording

I can generate the URL, so API and OAuth works. I just cant get it to show the recording. I got an error message about not being able to sync Google Drive saying only account used to generate the room can sync even though we were using the same account to sync.

User fields must be covered with a metadata provider

The table googlemeet_notify_done stores ids of users. This info is considered private and has to be covered with a metadata provider. So you have to provide a way to export and delete this data.

Perhaps there is another way to collect which users were already notified using Moodle core databases.

PHPUnit output:

$ vendor/bin/phpunit --testsuite core_privacy_testsuite
Moodle 3.10+ (Build: 20201204), 32866a1758e4aeee9a04207e480dbc91a4a828be
Php: 7.3.24.3.18.04.1.1, pgsql: 10.15 (Ubuntu 10.15-0ubuntu0.18.04.1), OS: Linux 4.15.0-126-generic x86_64
PHPUnit 8.5.8 by Sebastian Bergmann and contributors.

.............................................................   61 / 1736 (  3%)
.............................................................  122 / 1736 (  7%)
.............................................................  183 / 1736 ( 10%)
.............................................................  244 / 1736 ( 14%)
.............................................................  305 / 1736 ( 17%)
.............................................................  366 / 1736 ( 21%)
.............................................................  427 / 1736 ( 24%)
.............................................................  488 / 1736 ( 28%)
.............................................................  549 / 1736 ( 31%)
.............................................................  610 / 1736 ( 35%)
.............................................................  671 / 1736 ( 38%)
.............................................................  732 / 1736 ( 42%)
.............................................................  793 / 1736 ( 45%)
.............................................................  854 / 1736 ( 49%)
.............................................................  915 / 1736 ( 52%)
.............................................................  976 / 1736 ( 56%)
............................................................. 1037 / 1736 ( 59%)
............................................................. 1098 / 1736 ( 63%)
............................................................. 1159 / 1736 ( 66%)
............................................................. 1220 / 1736 ( 70%)
............................................................. 1281 / 1736 ( 73%)
............................................................. 1342 / 1736 ( 77%)
............................................................. 1403 / 1736 ( 80%)
............................................................. 1464 / 1736 ( 84%)
............................................................. 1525 / 1736 ( 87%)
............................................................. 1586 / 1736 ( 91%)
.................................................F........... 1647 / 1736 ( 94%)
............................................................. 1708 / 1736 ( 98%)
............................                                  1736 / 1736 (100%)

Time: 53.59 seconds, Memory: 197.00 MB

There was 1 failure:

1) provider_testcase::test_table_coverage
The following tables with user fields must be covered with metadata providers:
  - googlemeet_notify_done (userid)

privacy/tests/provider_test.php:327
lib/phpunit/classes/advanced_testcase.php:80

FAILURES!
Tests: 1736, Assertions: 11400, Failures: 1.

Error when Sync with Google Drive because of multiple folder named "Meet Recordings" shared from different account

Step to reproduce:

  1. create the activity using user [email protected]
  2. from another account ([email protected]), share a folder named "Meet Recordings" to [email protected]
  3. Sync with Google Drive
  4. Error: Is not possible to synchronize with an account other than the one that created the room.

Cause of problem:

https://github.com/ronefel/moodle-mod_googlemeet/blob/master/amd/src/view.js#L284
It only reads and checks the first data.

Possible solution:

  1. Using a loop to check all data instead of only check the first data
  2. Optionally update https://github.com/ronefel/moodle-mod_googlemeet/blob/master/amd/src/view.js#L277 to make it only return data with owner email matched the user email.

Gooogle Meet api and ouath2 problem and solved

I found a solution, old dated api and ouath2 id are working but new dated not working. it will work if you have old dated api and ouath2 id. The plugin needs to be updated in accordance with the newly created api and ouath2 id.

{
"error": "idpiframe_initialization_failed",
"details": "You have created a new client application that uses libraries for user authentication or authorization that will soon be deprecated. New clients must use the new libraries instead; existing clients must also migrate before these libraries are deprecated. See the Migration Guide for more information."
}

Issue abour permissions when sync

Hi Rone, As I commented in moodle.org, I have been working with this plugin but when I'm going to sync, the platform shows me an error. In the attached image, I show which is the message I get.
What I did was comment the line:
helper::request($service, 'create_permission', $permissionparams, json_encode($permissionrawpost));
in the client.php and it works but with this modification, the access for the students to the recordings is blocked and they have to require permission. I guess, this is the way to give the user those permissions automatically.
Screenshot 2023-08-17 at 3 45 06 PM
Could you help me please with this problem? Thank you.
Alexander.

Missing language string

In index.php,when there's no Google Meet instance , the page shows [[nonewmodules]]. There should be the string in the lang/en/googlemeet.php

Sync with Moodle calendar.

When creating a meeting there is no event added to Moodle calendar. Is that part of the plugin? Maybe an enhancement for the next release?
Thank you!

the googlemeet_records table is being written with duplicated registers but with different googlemeetid

Hello Rone,
As the title says, When the sync process finishes, the records report shows all the records of that room but also records from other rooms. I was checking the problem and I found that the googlemeet_records table has duplicated records but with different googlemeetid. In the attached image, there is a capture of that table with two duplicated records but with different googlemeetid (the second column).

Screenshot 2023-08-23 at 8 30 49 AM

"idpiframe_initialization_failed". You have created a new client application that uses libraries for user authentication or authorization that will soon be deprecated....

Hi I just installed the plugin following the video (Rone Santos) in the plugin page but I got an error when trying to add a new Google Meet activity in the Moodle side.

The error is already reported by other user (Baka Abhm) there in the plugin page: https://moodle.org/plugins/mod_googlemeet

"idpiframe_initialization_failed". You have created a new client application that uses libraries for user authentication or authorization that will soon be deprecated. New clients must use the new libraries instead; existing clients must also migrate before these libraries are deprecated...

2022-07-30_19-37-59

error in the installation screen of the activity

Hi,
I need to use your plugin in a moodle course.
I have this error in the installation screen of the activity

{
  "error": "idpiframe_initialization_failed",
  "details": "sessionStorage is not available in the current environment."
}

Could you help me, please? :-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.