- Why Can't You See Your Bot in the Developer Portal?
The Developer Portal for Teams is used to manage apps and bots. If your bot doesn't appear in the Developer Portal, it could be due to one of the following reasons:
- The bot was created outside the Developer Portal (e.g., via Azure Bot Service or manually through the Teams Admin Center).
- The app manifest was uploaded directly to the Teams Admin Center, which doesn't automatically sync with the Developer Portal.
Solution:
- Import Your App into the Developer Portal:
- Go to the Teams Developer Portal.
- Click Import an app and upload your app's manifest file (
manifest.json
).- Once imported, your bot should appear under Apps and Tools > Bot Management.
- Click Import an app and upload your app's manifest file (
- Go to the Teams Developer Portal.
- Why Can't You Enable Real-Time Meeting Events?
The error "Failed to update meeting event subscriptions" (status code 500) when enabling real-time meeting events for "Participant join" and "Participant leave" is likely due to:
- Missing Resource-Specific Consent (RSC) permissions in your app registration.
- A misconfiguration in your app manifest or Azure AD app registration.
Solution:
Ensure RSC Permissions Are Configured Correctly:
- In your app manifest, ensure the following RSC permissions are included under
authorization.permissions.resourceSpecific
:{ "name": "OnlineMeetingParticipant.Read.Chat", "type": "Application"},{ "name": "ChannelMeetingParticipant.Read.Group", "type": "Application"}- These permissions allow your bot to subscribe to participant join/leave events.
- Go to **Azure Active Directory > App Registrations > Your Bot App**. - Under **API Permissions**, ensure the RSC permissions are listed and grant admin consent. **Enable Real-Time Meeting Events in the Developer Portal**: - After ensuring the above configurations, go back to the Developer Portal. - Navigate to **Tools > Bot Management > Real-Time Meeting Events**. - Enable the "Participant join" and "Participant leave" events and save.
- Why Do You Need Extra Steps for Participant Join/Leave Events?
The Meeting Started/Ended events are general meeting lifecycle events that don't require additional configuration. However, Participant Join/Leave events are more granular and require real-time meeting subscriptions, which are managed through the Developer Portal.
This additional step is required because:
- Real-time meeting events involve higher resource usage and permissions.
- Microsoft requires explicit consent and configuration to enable these events.
- Do You Need to Enable Real-Time Events for Each Organization?
No, you don't need to manually enable real-time meeting events for each organization. Once your bot is configured with the correct RSC permissions and real-time meeting events are enabled in the Developer Portal, the bot can handle these events across all organizations where it is installed.
However, the following conditions must be met:
- The bot must be installed in the meeting or team where the events are expected.
- The tenant admin must consent to the RSC permissions when installing the bot.
- Alternative Methods to Receive Participant Join/Leave Events
If the Developer Portal is not working for you, there is currently no alternative method to directly subscribe to Participant Join/Leave events without using the Developer Portal. However, you can try the following:
Use Microsoft Graph API for Meeting Events:
- You can use the Microsoft Graph API to poll for meeting participant data periodically.
- Example: Use the
/onlineMeetings/{meetingId}/participants
endpoint to get the current list of participants.
- If the Developer Portal is not functioning as expected (e.g., 500 errors), raise a support ticket with Microsoft to resolve the issue.
- Example: Use the
- Why Can't You Receive Participant Join/Leave Events Like Meeting Started/Ended?
The Meeting Started/Ended events are part of the standard bot event model and don't require real-time subscriptions. In contrast, Participant Join/Leave events are part of the real-time meeting events feature, which requires explicit configuration and RSC permissions.
Reference Document-
1.https://learn.microsoft.com/en-us/microsoftteams/platform/bots/calls-and-meetings/real-time-media-concepts
2.https://learn.microsoft.com/en-us/microsoftteams/platform/graph-api/rsc/resource-specific-consent
3.https://learn.microsoft.com/en-us/graph/api/resources/onlinemeeting?view=graph-rest-1.0