View Categories

Microsoft Teams Integration Setup in MeetingHub

MeetingHub connects Microsoft Teams to WordPress through a Microsoft Entra app registration and delegated Microsoft Graph authorization. After connecting, MeetingHub creates and manages calendar events for the signed-in Microsoft user and requests a Teams online meeting link where the account supports it.

Microsoft personal accounts can behave differently from Microsoft 365 Business or Education accounts. MeetingHub may create an Outlook calendar event without receiving a Teams video join URL. Test the complete workflow before sharing a meeting page.

Requirements #

  • MeetingHub installed and activated
  • WordPress administrator access
  • A Microsoft account
  • Access to create an app registration in Microsoft Entra or the Azure portal
  • Permission to grant the required Microsoft Graph delegated permissions
  • HTTPS enabled on the WordPress site
  • A Microsoft 365 Business or Education account when reliable API-generated Teams join links are required
  • MeetingHub Pro for Pro-only Teams controls such as recurrence and MeetingHub registration

How the Microsoft Teams connection works #

MeetingHub stores a Client ID and Client Secret for the Microsoft app. The administrator then selects Connect Microsoft Teams and signs in to Microsoft. Microsoft returns an authorization code to MeetingHub’s redirect URL, and MeetingHub exchanges it for an access token.

The inspected integration uses delegated Microsoft Graph access for the signed-in Microsoft user. It creates Teams sessions through Microsoft calendar events, then reads the online meeting join URL returned with the event.

Step 1: Copy the MeetingHub redirect URL #

  1. Sign in to WordPress as an administrator.
  2. Go to MeetingHub > Settings.
  3. Open Microsoft Teams.
  4. Select the Connect tab.
  5. Find Redirect URL for Azure App Registration.
  6. Select Copy URL.

MeetingHub builds this URL from the WordPress home URL and the /mhub-msteams-oauth/ path. Copy the exact value shown on your own site.

https://example.com/mhub-msteams-oauth/

[Image needed: WordPress admin page at MeetingHub > Settings > Microsoft Teams > Connect showing the Redirect URL for Azure App Registration and Copy URL control. Blur the real domain if private, all saved credentials, tokens, email addresses, and browser password-manager prompts.]

Step 2: Register an application with Microsoft #

  1. Open the Azure portal or Microsoft Entra app registrations area.
  2. Go to App registrations.
  3. Select New registration.
  4. Enter an identifiable name such as MeetingHub Integration.
  5. Choose the supported account types required by your organization.
  6. If both organizational and personal Microsoft accounts will connect, choose the option that includes accounts in any organizational directory and personal Microsoft accounts.
  7. For Redirect URI, choose Web.
  8. Paste the exact URL copied from MeetingHub.
  9. Register the application.

[Image needed: Microsoft app registration screen showing the application name, supported account types, Web redirect type, and the MeetingHub redirect URL. Blur tenant names, directory IDs, subscription details, user identities, and the real domain if private.]

MeetingHub’s inspected authorization and token endpoints use Microsoft’s common tenant path. The visible Tenant ID (Optional) field is saved by the settings screen, but the inspected Microsoft Teams API class does not use it to replace the common endpoint. Treat tenant-specific behavior as requiring manual verification in this plugin version.

Step 3: Create a client secret #

  1. Open the new app registration.
  2. Go to Certificates & secrets.
  3. Select New client secret.
  4. Enter a description.
  5. Choose an expiration period that matches your organization’s security policy.
  6. Create the secret.
  7. Copy the secret Value immediately.

Microsoft normally shows the secret value only when it is created. Do not copy the Secret ID in place of the secret Value.

[Image needed: Microsoft app Certificates & secrets page immediately after creating the secret, with the Value and Secret ID columns distinguishable. Blur the full secret value, secret ID, application name, tenant information, and user identity.]

Step 4: Add Microsoft Graph delegated permissions #

  1. Open API permissions for the app registration.
  2. Select Add a permission.
  3. Choose Microsoft Graph.
  4. Choose Delegated permissions.
  5. Add User.Read.
  6. Add Calendars.ReadWrite.
  7. Add OnlineMeetings.ReadWrite when the account and tenant support it.
  8. Grant administrator consent if your organization requires it and you are authorized to do so.

User.Read lets MeetingHub identify the signed-in Microsoft user. Calendars.ReadWrite lets it create, update, and delete calendar events. OnlineMeetings.ReadWrite relates to online meeting operations.

The inspected browser authorization request explicitly asks for openid, profile, User.Read, Calendars.ReadWrite, and offline_access. The backend token exchange also references OnlineMeetings.ReadWrite. Because those requested scope strings are not identical, verify the final consent and test whether the connected account actually receives online meeting access.

[Image needed: Microsoft app API permissions page showing User.Read, Calendars.ReadWrite, and OnlineMeetings.ReadWrite as delegated Microsoft Graph permissions, plus the consent status. Blur tenant names, administrator identity, directory information, and application IDs.]

Step 5: Copy the Application Client ID #

  1. Open the app registration’s Overview page.
  2. Copy the Application (client) ID.
  3. Keep the client secret Value available in a secure password manager.
  4. Do not publish either value in documentation or screenshots.

[Image needed: Microsoft app Overview page with the Application client ID field highlighted. Blur the complete Client ID, Directory tenant ID, object ID, subscription information, and account identity.]

Step 6: Save the Microsoft credentials in MeetingHub #

  1. Return to MeetingHub > Settings > Microsoft Teams > Connect.
  2. Paste the Application Client ID into Client ID.
  3. Paste the secret Value into Client Secret.
  4. Leave Tenant ID (Optional) empty unless you have manually confirmed that it is required and supported by your installed version.
  5. Select Save Changes.

The Connect Microsoft Teams button appears after the Client ID and Client Secret are saved. Typing values without saving them is not enough.

[Image needed: MeetingHub Microsoft Teams Connect tab with Client ID and Client Secret completed, Tenant ID Optional visible, and the Save Changes control shown. Blur every credential value, tenant identifier, Microsoft account detail, and browser password-manager prompt.]

Step 7: Authorize the Microsoft account #

  1. After saving the credentials, select Connect Microsoft Teams.
  2. Sign in with the Microsoft account that will own the calendar events and Teams meetings.
  3. Review the requested permissions.
  4. Accept the permissions only if they match the intended MeetingHub workflow.
  5. Wait for Microsoft to return you to WordPress.
  6. Return to the Microsoft Teams Connect tab if necessary.
  7. Confirm that MeetingHub shows Connected and offers Disconnect Microsoft Teams.

[Image needed: Microsoft consent screen for the MeetingHub app showing the requested delegated access, followed by the MeetingHub Microsoft Teams Connect tab in the Connected state. Blur the Microsoft account, tenant, application identifiers, credentials, tokens, and real domain.]

The Connected state requires a stored access-token identity and matching saved credentials in the inspected interface. A connection can still lack the account capability needed to produce a Teams video join URL, so continue with a real test.

Step 8: Create a private Microsoft Teams test meeting #

  1. Go to the MeetingHub meeting dashboard.
  2. Create a new meeting.
  3. Select Microsoft Teams.
  4. Enter a fictional title and agenda.
  5. Set a future date, time, duration, and timezone.
  6. Keep recurrence, registration, and attendee changes disabled for the first test.
  7. Create the meeting.
  8. Open the saved meeting in MeetingHub.
  9. Open the connected Microsoft calendar and find the matching event.

[Image needed: MeetingHub Microsoft Teams meeting creation form with fictional title, schedule, duration, and timezone, followed by the matching Microsoft calendar event. Blur join URLs, attendee names, email addresses, event IDs, tenant information, and account details.]

Step 9: Verify the returned joining action #

MeetingHub first asks Microsoft to create a calendar event configured as an online Teams meeting. If Microsoft returns an online meeting object, MeetingHub stores its join URL.

If that approach fails, MeetingHub tries another calendar-event request. If Microsoft still does not provide an online meeting, MeetingHub can create a simple calendar event without a Teams video link.

  1. Open the public MeetingHub meeting page in a private browser window.
  2. Look for the Teams join action.
  3. Confirm that it opens the expected Teams meeting.
  4. If the page shows View in Calendar, open the event and inspect it.
  5. If the event has no Teams join link, do not distribute it as a video meeting.

Personal Microsoft accounts are more likely to return only a calendar web link. For reliable API-generated Teams join links, use a suitable Microsoft 365 Business or Education account and verify the tenant’s Graph permissions and policies.

[Image needed: Private-browser preview of a MeetingHub Microsoft Teams page showing either Join Meeting or View in Calendar, with a second image of the corresponding Microsoft calendar event. Blur the meeting URL, calendar URL, attendees, organizer, event ID, and account details.]

Step 10: Test editing and deletion #

  1. Edit the test meeting title or schedule in MeetingHub.
  2. Save the change.
  3. Confirm that the Microsoft calendar event is updated.
  4. Delete the private test meeting from MeetingHub.
  5. Confirm that the related Microsoft event is removed or cancelled as expected.

The inspected update and delete methods operate on Microsoft calendar event endpoints. Always compare both systems after an edit or deletion.

Disconnect Microsoft Teams #

  1. Go to MeetingHub > Settings > Microsoft Teams > Connect.
  2. Select Disconnect Microsoft Teams.
  3. Wait for the confirmation notice.
  4. Confirm that the Connect button returns.
  5. Remove or revoke the Microsoft app separately if the integration is being retired.

Disconnecting clears the MeetingHub connection state. It does not automatically remove every existing Microsoft calendar event or delete the Microsoft app registration.

Security recommendations #

  • Keep the Client Secret in a password manager.
  • Never expose access tokens, refresh tokens, Client IDs, Client Secrets, calendar links, or meeting join URLs.
  • Grant only the delegated permissions needed for the integration.
  • Use a secret expiration policy and record its renewal date.
  • Restrict WordPress administrator access.
  • Rotate the secret immediately if it is exposed.
  • Update MeetingHub and reconnect after changing the secret.
  • Review the app registration and consent regularly.

Common mistakes #

  • Copying the Secret ID instead of the secret Value
  • Typing the redirect URL instead of copying it from MeetingHub
  • Choosing the wrong redirect platform instead of Web
  • Forgetting to save credentials before selecting Connect Microsoft Teams
  • Using application permissions when the inspected workflow requires delegated authorization
  • Assuming a personal Microsoft account will always return a Teams join URL
  • Sharing a calendar-only event as if it were a confirmed Teams video meeting
  • Assuming the optional Tenant ID changes the inspected common authorization endpoint

Troubleshooting #

The Connect Microsoft Teams button does not appear #

Enter both the Client ID and Client Secret, then select Save Changes. The inspected interface shows the Connect button only after those credentials are stored.

Microsoft reports a redirect URI mismatch #

Copy the redirect URL from MeetingHub again. Confirm that the Microsoft app uses the Web platform and that the protocol, domain, subdirectory, path, and trailing slash match exactly.

Authorization succeeds but no Teams join URL is created #

Check the Microsoft account type, delegated permissions, admin consent, tenant policies, and online-meeting capability. The current authorization request and token exchange reference different scope sets, so test the granted access. Personal accounts can fall back to a calendar event without a video link.

The meeting page shows View in Calendar #

MeetingHub received a Microsoft calendar web link but no online meeting join URL. Open the event and confirm whether Microsoft created a Teams meeting. If not, use a suitable Microsoft 365 account or create the Teams link manually.

The optional Tenant ID has no visible effect #

The setting is visible and saved, but the inspected API class uses Microsoft’s common authorization and token endpoints. Treat tenant-specific routing as unsupported until manually verified in the installed version.

A client secret expired #

Create a new secret Value in Microsoft, save it in MeetingHub, and reconnect the Microsoft account. Delete the expired secret after the new connection works.

Editing or deleting does not update Microsoft #

Confirm that the saved MeetingHub record contains the Microsoft calendar event ID and that the access token is still valid. Reconnect the account if necessary, then test with a private event.

Frequently asked questions #

Can I use a personal Microsoft account? #

You can authorize it, but Microsoft may return only a calendar event without a Teams video join link. Test the result before depending on it.

Does MeetingHub use application permissions? #

The inspected connection uses delegated OAuth for the signed-in Microsoft user.

Is OnlineMeetings.ReadWrite enough by itself? #

No. MeetingHub also reads the user and creates or manages calendar events. The actual consent, account capability, and tenant policies must support the full workflow.

Does disconnecting delete existing meetings? #

No. Review existing MeetingHub records and Microsoft calendar events separately.

Related guides #

Powered by BetterDocs

Leave a Comment