List who attended an MS Teams meeting and for how long they attended - microsoft-graph-api

I'd like to list who attended a MS Teams meeting and for how long they attended so they can get credit for attending a training session.
I've looked at the Graph API v1 and beta versions. Meetings have an object called meetingParticipantInfo, but there's nothing that I've seen that would indicate if that participant actually attended the meeting. Is there a way to get this information, and ideally, how long the participant attended? Or is there another way to get this information through bots?
https://learn.microsoft.com/en-us/graph/api/resources/meetingparticipants?view=graph-rest-beta

The (CDR's) Call Detail Records are probably the information your looking for as they should contain that information see https://techcommunity.microsoft.com/t5/Microsoft-Teams-Blog/Microsoft-Teams-launches-eDiscovery-for-Calling-and-Meetings/ba-p/210947 . I don't believe any of the Graph API's will surface that information but you can get the raw information from a Mailbox using EWS this is what I use https://dev.to/gscales/accessing-microsoft-teams-summary-records-cdr-s-for-calls-and-meetings-using-exchange-web-services-3581 . If you use a tool like mfcMapi https://github.com/stephenegriffin/mfcmapi/releases you can browse the Mailbox to see if a CDR is available and has the information you need without needing to write any code.

As of Feb 2020, Microsoft Graph API now includes microsoft.graph.callRecords (beta, preview).
If you call with session information expanded you can get startDateTime and endDateTime of each session which is the "time when the first user joined the session" and the "time when the last user left the session" respectively.
GET https://graph.microsoft.com/beta/communications/callRecords/{id}?$expand=sessions($expand=segments)
Here's the documentation for the call record session fields.

You should vote for this feature : https://microsoftteams.uservoice.com/forums/555103-public/suggestions/33989875-view-or-export-a-list-of-users-who-attended-a-meet
Then you can try with this : https://techcommunity.microsoft.com/t5/microsoft-teams-blog/microsoft-teams-launches-ediscovery-for-calling-and-meetings/ba-p/210947
I try to develop an app calling the Graph API, so if I do success, I will share it ;-)

Related

How to get a list of active PSTN calls in Teams using the Microsoft Graph API

We're looking for a way to get a list of all currently active PSTN calls being made into MS Teams. We've tried this:
https://learn.microsoft.com/en-us/graph/api/callrecords-callrecord-getpstncalls?view=graph-rest-beta
That's almost exactly what we need except records do not seem to appear here until the call has ended. What we need for the app we're trying to build is live call records.
We've also tried it by creating subscriptions and getting the ID of specific calls then looking up call records, but this data also appears to be delayed.
Is there a method we're missing here, or equally, is this something that may be added to the API some point soon?
Currently there is no graph API to get a list of active PSTN calls in Teams.
Microsoft will always focus on customer’s feedback and experience, some new features would be added to the services based on customers' feedback in the future, we also recommend you give your new idea in Teams UserVoice here.
They clearly mentioned in the document, we can not fetch the details directly. But you can fetch the records from your application. Using app side bearer token.

How to get Comminication calls id of an online meeting?

I want to develop a module where I create a event from graph api to set a online meeting and then I want attendance report with time in and time out. I see Communication.Calls can do this so any way to get call Id?

Error with Graph API Call via PowerApp - Office365.FindMeetingTimes when > 20 rooms

We are now getting an error within our Book A Room powerapp when trying to find available meeting times. The error has only started since we added a new room which takes us to 21 rooms in our Office 365. The error is as follows:
The issue seems to be that in the API request all 21 rooms are included in the requiredAttendees json attribute. Once I remove the newly added room on Office365 the error goes away.
All rooms in the catalogue need to be included in the request to see whether they are available for booking but is this limit of 20 a hard limit on the API side? If so, what alternatives do I have?
I'm not familiar with the Office365.FindMeetingTimes() endpoint, but if this is a limitation of the API, then it sounds like you may need to implement a sort of paging in your app. The first time the app calls FindMeetingTimes(), you'll have to pass in the first 20 rooms. Then if the user isn't satisfied with the proposed times, they can initiate a "find more times" feature that will call FindMeetingTimes() with the next 20 rooms. I'm not sure if this is the best solution, but it could be a workaround.

MS Graph API endpoint /v1.0/me/planner/plans doesn't return all my plans

In the past I was reading a list of plans of current user with this REST call of the beta-API:
https://graph.microsoft.com/beta/me/plans
In July 2017 the planner API was released and there are also some minor changes to the endpoints, so the REST call in the V1.0-API now is:
https://graph.microsoft.com/v1.0/me/planner/plans
Unfortunately I do not receive all my plans with that endpoint. Apparently I only get plans that exist for a long time, but any newly created plans are not visible. I tried a lot of actions on my plans like subscribing to, assigning tasks to me, favorize the plan in planner hub, making a plan public or private, but nothing helps, new plans remain invisible in the API.
Can anybody explain what the new endpoint exactly does? The documentation for List plans is not very helpfull.
Can anybody explain how I can a list of all plans (title and id) that I am owner or member of?
The only work-around I have found so far is:
1) Read all unified groups
https://graph.microsoft.com/v1.0/me/memberOf/$/microsoft.graph.group?$filter=groupTypes/any(a:a eq 'unified')
2) for each group: read the planner plan for that group
https://graph.microsoft.com/v1.0/groups/<id>/planner/plans
But that would require one request per group, makeing performance horrible on tenants with dozens of groups.
This API returns plans that have been shared with the current user. Plans can be shared with a user by adding the user's id to sharedWith property of planDetails (Edit: currently users do not have permissions to add or remove others from this list). This is a separate set of users from group membership and does not allow access to data for shared users. Instead, the users will have access if they are group members, and lose access if they are removed from the group.
More information and a sample for updating plan details can be found here.
Additionally, you can submit feedback about the API (and other Planner functionality) here.

Fogbugz query to show all of my closed tickets?

I'm new to fogbugz, so I may be making some incorrect assumptions. However, my understanding is that when a ticket is Closed, then the assigned To field becomes "Closed".
How can I search for all of the tickets for which I was the assigned person BEFORE it was closed?
I don't think there is any way to do this via UI / Dashboard, instead you have to use FOGBUGZ API & code to get the data you want. Use the API to get the tickets under milestone and then loop through to get the Assigned To / Developer . That's how we have been playing.
FogBugz XML API Development
FogBugz XML API version 8

Resources