c# - 如何在 C# 中使用 Microsoft Graph 库使用 $value

标签 c# microsoft-graph-api

我正在尝试从一些电子邮件中接收一些 .eml 附件。
基于来自 https://docs.microsoft.com/en-us/graph/outlook-get-mime-message 的文档我需要使用:GET/users/{id}/messages/{id}/attachments/{id}/$value

这里的问题是我不知道如何使用 C# 中的 Microsoft.Graph 库来做到这一点。
我不知道将“$value”附加到调用中。下面我附上了我目前用于获取特定电子邮件附件的 C# 结构。任何建议都可以提供帮助。谢谢。

return await _graphServiceClient.Me.Messages[emailId].Attachments.Request().GetAsync()

最佳答案

SDK 目前不直接支持这一点。通常获取 /$value附加到生成的请求 URL 的段,您访问 Content请求构建器上的属性。问题是泛型 IAttachmentRequestBuilder不实现这个属性,只有 FileAttachmentRequestBuilder做。

所以要让它与当前的 SDK 一起工作,你需要这样做:

var msgId = "message-id";
var attId = "attachment-id";

var attachmentRequestBuilder = client.Me.Messages[msgId].Attachments[attId];
var fileRequestBuilder = new FileAttachmentRequestBuilder(
    attachmentRequestBuilder.RequestUrl, client);

Console.WriteLine($"Request URL: {fileRequestBuilder.Content.Request().RequestUrl}");
var stream = await fileRequestBuilder.Content.Request().GetAsync();

using(var reader = new StreamReader(stream))
{
    Console.WriteLine("Attachment contents:");
    while (!reader.EndOfStream)
    {
        var line = reader.ReadLine();
        Console.WriteLine(line);
    }
}

我已经让 SDK 人员知道了这一点。

关于c# - 如何在 C# 中使用 Microsoft Graph 库使用 $value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60992118/

相关文章:

python - 在C#中拼接字符串

odata - 微软图: get only users from group

azure - 我可以使用 Graph API 和 Azure ADB2C 通过原始登录屏幕对用户进行身份验证吗?

.net-core - 使用 Azure AD v2.0 通过适用于 .NET 的 Azure 管理库进行身份验证

azure - 使用 graph api createEvent 创建事件的发布请求抛出 "OrganizationFromTenantGuidNotFound"错误

c# - 从 Pinterest 网址获取图板中的所有图像

c# - 如何从通过 MEF 注入(inject)的代码创建向导界面?

azure-active-directory - Azure AD 自动添加了 offline_access

c# - 大型线程任务处理程序的C#核心实现

c# - AngularJs 和 ASP.NET MVC 5 - ng-model 覆盖文本框值