General plugins (Local): Microsoft Office 365 Integration

Maintained by Picture of James McQuillan James McQuillan, Picture of Zion Brewer Zion Brewer, Picture of Nima Mojgani Nima Mojgani
This plugin provides libraries and services that power other Office 365 plugins.
1439 sites
51 fans

Office 365 Plugins for Moodle

Microsoft Office 365 Integration Local Plugin

This plugin provides libraries and services and power other Office 365 plugins.

This is part of the suite of Office 365 plugins for Moodle.

This plugin is updated with stable releases. To follow active development on GitHub, click here.


Before we can accept your pull request, you'll need to electronically complete Microsoft's Contributor License Agreement. If you've done this for other Microsoft projects, then you're already covered.

Why a CLA? (from the FSF)


(c) Microsoft, Inc.  Code for this plugin is licensed under the GPLv3 license.

Any Microsoft trademarks and logos included in these plugins are property of Microsoft and should not be reused, redistributed, modified, repurposed, or otherwise altered or used outside of this plugin.


This plugin is part of set Office 365.


Screenshot #0
Screenshot #1
Screenshot #2


Picture of James McQuillan
James McQuillan (Lead maintainer)
Picture of Vinayak (Vin) Bhalerao
Vinayak (Vin) Bhalerao
Picture of Akinsaya Delamarre
Akinsaya Delamarre
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Colin Wheelhouse
    Tue, 3 Oct 2017, 9:40 PM
    Hi, we have set up the OIDC and it works for admin fine. It works for students if the preventaccountcreation is off but then we get duplicate accounts. It appears that the SDS cron is not running and we get this error if we try and run it manually.

    Execute scheduled task: Sync with SDS (local_o365\feature\sds\task\sync)
    ... started 14:37:06. Current memory use 9.9MB.
    Exception - Argument 1 passed to local_o365\rest\o365api::__construct() must be an instance of local_o365\oauth2\token, null given, called in [dirroot]/local/o365/classes/feature/sds/task/sync.php on line 361

    Anybody got any ideas?



  • Picture of Urpo Karhula
    Wed, 4 Oct 2017, 6:52 PM

    is this plugin still being developed? Will this plugin be Moodle 3.3 compatible?
  • Picture of Steve Massicotte
    Fri, 6 Oct 2017, 11:25 PM

    our university is now using Office 365 and we want to give access to OneDrive for business and OneDrive personal to our user. We are using Moodle 3.3 and we noticed that the core plugin now give access to both of them. We also noticed that your documentation still talk about the repository_office 365 plugin.

    My question : Is the repository_office 365 plugin still necessary ? Does it give some extra features that the core plugin does not cover ?


  • Picture of tamas erdelyi
    Thu, 23 Nov 2017, 10:23 PM
    Hi, I cannot run any cronjobs anymore, getting this:
    Execute scheduled task: Nutzergruppen in Office 365 erstellen (local_o365\task\groupcreate)
    ... started 15:20:36. Current memory use 16.8MB.
    !!! Fehler: Argument 1 passed to local_o365\rest\o365api::__construct() must be an instance of local_o365\oauth2\token, null given, called in [dirroot]/local/o365/classes/feature/usergroups/coursegroups.php on line 393 !!!

    Please help! I just made security updates on the server, nothing else, Moodle does not send notifications any more...THANKS!!!
  • Picture of tamas erdelyi
    Thu, 23 Nov 2017, 10:36 PM
    ok i disabled sync office365 groups under the settings of the plugin, looks better now, thanks anyway!
  • Picture of Aaron Johnson
    Tue, 12 Dec 2017, 5:15 PM

    I can't get this plug-in to properly install. When I try installing it, I get a "DDL sql execution error" followed by a long list of debug messages starting with "Debug info: Table 'mdl_local_o365_cronqueue' already exists".

    The Stack trace is:
    line 485 of \lib\dml\moodle_database.php: ddl_change_structure_exception thrown
    line 1000 of \lib\dml\mysqli_native_moodle_database.php: call to moodle_database->query_end()
    line 77 of \lib\ddl\database_manager.php: call to mysqli_native_moodle_database->change_database_structure()
    line 425 of \lib\ddl\database_manager.php: call to database_manager->execute_sql_arr()
    line 370 of \lib\ddl\database_manager.php: call to database_manager->install_from_xmldb_structure()
    line 520 of \lib\upgradelib.php: call to database_manager->install_from_xmldb_file()
    line 1748 of \lib\upgradelib.php: call to upgrade_plugins()
    line 693 of \admin\index.php: call to upgrade_noncore()

    Without this plug-in, I can't use the Office 365 Repository. I am using Moodle 3.2.2

  • Picture of Jordan Salivan
    Thu, 1 Feb 2018, 8:09 PM
    Tell me please, can i integrate Word to my website - ? I want to make online grammar check at service.
  • Picture of Wolfgang Stettler
    Fri, 16 Feb 2018, 5:14 PM
    We are having difficulties with connecting Moodle and Azure (o365). The Azure AD Application reports the error that it could not check the reply url.
    Is this possibly a proxy problem? With other Moodle plugins we faced the problem, that they do not use Moodle's proxy setting. Does this plugin use them, or can they be configured seperately?

  • Picture of Urpo Karhula
    Tue, 20 Feb 2018, 2:51 PM

    Can you automate the user account linking to o365-services or do every student have to do it once bythemselves?
  • Picture of James McQuillan
    Tue, 20 Feb 2018, 9:22 PM
    Urpo Karhula - The "user sync" option from the "Options" tab of the plugin settings provides a few different options for this. You can have the plugin create new user accounts for everyone in Azure AD, or have it automatically match users that have the same usernames.
  • Picture of Andrew Chapman
    Wed, 7 Mar 2018, 9:40 AM
    In Azure AD setup of the configuration page, when clicking on update, we get errors:
    Could not check reply url
    Could not check sign-on URL
    - And graph
    Error in API call: Property 'appid' does not exist as a declared property or extension property.

    Everything else appears correct. I have read that this problem was fixed in later versions (ie for later than Moodle 2.9), but that this version of the plugin is still quite old (from May 2017). We have the latest version. Is the problem going to be fixed for this version, too?

    We have another issue, which I wonder might be related to this: teachers who upload files to courses from their OneDrive to share with students using the O365 file picker, do not seem to get sharing permissions set properly. When students go to view the resources they receive an O365 warning that the file is not shared with them. Any advice on this?
  • Picture of James McQuillan
    Wed, 7 Mar 2018, 10:02 PM
    @andrew - You're correct, this problem should be resolved, especially if you have the latest version. What version of Moodle are you on? (PM me and we can discuss further).
  • Picture of Michael Perry
    Thu, 17 May 2018, 9:55 PM
    Which Azure AD permission governs access to the reply url?

    We are still getting "Could not check reply url." After switching to Application access. All other checks seem to work ok such as for the graph api and it all seems to work. We are on Moodle 3.4 stable and the latest detected plugin. Azure AD permissions are correct as far as we can tell.
  • Picture of Eric Albert
    Thu, 14 Jun 2018, 3:24 AM
    For the "Sync Office 365 profile photos to Moodle in cron job " is the photo coming down from Azure into Moodle or the other way around?

    We are getting:
    Syncing user
    Could not assign profile photo to user "" Reason: Could not refresh token
    Found a user in Azure AD that seems to match a user in Moodle
    moodle username: ealbert, aad upn:
    User is already matched.

  • Picture of Andrew Chapman
    Wed, 4 Jul 2018, 8:46 AM
    We've upgraded to Moodle 3.5. Users can access their O365 files with the picker, but when they select "Create a sharing link", an error is thrown "Exception - call to a member function get_sharing_link() on boolean".
1 2 3 4 5 6 7
Please login to post comments