Challenge in Verifying Attendee Participation in Microsoft Teams Meetings

onyore 40 Reputation points
2024-11-27T11:42:22.44+00:00

When creating a meeting using the CreateMeetingWithHttpClient method, the response we receive only includes a single meetingUrl. All participants, including the admin and attendees, access the meeting using the same link.

However, if an attendee joins the meeting through a browser without authenticating and manually enters their name, we encounter a challenge. Specifically, in the AttendanceReports list provided after the meeting, we cannot reliably match this participant to the attendee list we initially sent (which is based on email addresses). As a result, it becomes impossible to confirm whether that particular attendee participated in the meeting.

In summary, we cannot ensure accurate attendance tracking for participants who join without authentication.

public async Task<Result<CreateMeetingResponseProxy>> CreateMeeting(MeetingRequestDto dto, string subject, string content, DateTime startDateTime, DateTime endDateTime, bool isOnline, List<AttendeeDto> attendees)
{
    try
    {
        var graphClient = CreateGraphClient(dto);

        var timeZoneId = "Europe/Istanbul";

        var @event = new Event
        {
            Subject = subject,
            Body = new ItemBody
            {
                ContentType = BodyType.Html,
                Content = content
            },
            Start = new DateTimeTimeZone
            {
                DateTime = startDateTime.ToString("yyyy-MM-ddTHH:mm:ss"),
                TimeZone = timeZoneId
            },
            End = new DateTimeTimeZone
            {
                DateTime = endDateTime.ToString("yyyy-MM-ddTHH:mm:ss"),
                TimeZone = timeZoneId
            },
            AllowNewTimeProposals = true,
            IsOnlineMeeting = isOnline
        };

        if (isOnline)
        {
            @event.OnlineMeetingProvider = OnlineMeetingProviderType.TeamsForBusiness;
        }

        @event.Attendees = attendees.Select(attendee => new Attendee
        {
            EmailAddress = new EmailAddress { Address = attendee.Email, Name = attendee.Name },
            Type = attendee.Role
        }).ToList();

        var createdEvent = await graphClient.Users[dto.UserId].Events.PostAsync(@event);
        var meetingUrl = createdEvent?.OnlineMeeting?.JoinUrl;

        return Result<CreateMeetingResponseProxy>.Success(new CreateMeetingResponseProxy
        {
            EventId = createdEvent.Id,
            MeetingUrl = meetingUrl
        });
    }
    catch (Exception ex)
    {
        return Result<CreateMeetingResponseProxy>.Failure($"Failed to create meeting: {ex.Message}");
    }
}

Microsoft Teams
Microsoft Teams
A Microsoft customizable chat-based workspace.
10,463 questions
Microsoft Graph
Microsoft Graph
A Microsoft programmability model that exposes REST APIs and client libraries to access data on Microsoft 365 services.
12,503 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. LiweiTian-MSFT 21,530 Reputation points Microsoft Vendor
    2024-11-28T02:57:41.87+00:00

    Hi @onyore

    If these unauthenticated users enter the meeting as an anonymous user, their information may not be displayed in the meeting attendance report.

    If an attendee has the Identify me in attendance reports switch set to Off in their Teams privacy settings, you won't be able to see that user in meeting attendance reports either.


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.



Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.