microsoftgraph / microsoftgraph/msgraph-sdk-dotnet
Get callTranscript Content does not work in SDK
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 789
- Forks
- 264
- Avg merge
- 15h 17m
- Merged PRs (30d)
- 3
Description
Describe the bug
I am trying to download transcripts and recordings using Microsoft.Identity.Web.GraphServiceClient 2.18.1. The docs ?? say this:
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.Users["{user-id}"].OnlineMeetings["{onlineMeeting-id}"].Transcripts["{callTranscript-id}"].Content.GetAsync();
Which should return a Task<Stream> according to Intellisense. When I run this code, I get the following exception, Invalid format 'application/octet-stream, application/json' specified. with a 400 response code. If I remove .Content. I do get the transcript information.
Expected behavior
I would expect a stream to be returned with a 200 response. application/octet-stream would seem to be the correct content type for that.
How to reproduce
n/a
SDK Version
2.18.1
Latest version known to work for scenario above?
No response
Known Workarounds
I can download the transcript via postman if I specify the $format=text/vtt query parameter. Can't find a work-around within the SDK.
Debug output
Click to expand log
```Invalid format 'application/octet-stream, application/json' specified. Exception Attributes:
Message: Invalid format 'application/octet-stream, application/json' specified.
Exception type: Microsoft.Graph.Models.ODataErrors.ODataError
Source: Microsoft.Kiota.Http.HttpClientLibrary
Thrown by code in method: MoveNext
Thrown by code in class: d__28
Stack Trace:
Method: Microsoft.Kiota.Http.HttpClientLibrary.HttpClientRequestAdapter.ThrowIfFailedResponse(HttpResponseMessage response, Dictionary2 errorMapping, Activity activityForAttributes, CancellationToken cancellationToken) Method: Microsoft.Kiota.Http.HttpClientLibrary.HttpClientRequestAdapter.SendPrimitiveAsync[ModelType](RequestInformation requestInfo, Dictionary2 errorMapping, CancellationToken cancellationToken) Method: Microsoft.Kiota.Http.HttpClientLibrary.HttpClientRequestAdapter.SendPrimitiveAsync[ModelType](RequestInformation requestInfo, Dictionary2 errorMapping, CancellationToken cancellationToken) Method: Microsoft.Graph.Users.Item.OnlineMeetings.Item.Transcripts.Item.Content.ContentRequestBuilder.GetAsync(Action1 requestConfiguration, CancellationToken cancellationToken) Line #: 500 -- Method: CleverTeamsIntegration.CleverTeamsIntegration.TestGetTranscriptInfo(HttpRequestData req) -- Source File: C:\Repos\CleverProducts\Clever.Video.TeamsIntegration\CleverTeamsIntegration\CleverTeamsIntegration.cs
</details>
### Configuration
- OS: Windows 11 x64
### Other information
_No response_
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with ContentRequestBuilder.GetAsync in the Microsoft Graph .NET SDK 2.18.1 and review the request sent for the transcript content endpoint. Compare it with the successful Postman request using $format=text/vtt and the reported application/octet-stream, application/json error. Done means the SDK request returns the transcript stream with a 200 response.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- api
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100