2

我正在使用 Office 365 API 的 V1 DLL 来执行日历操作。我移到 V2 DLL 但我仍然有 Microsoft.Office365.Discovery 版本 1.0.22

在创建 OutlookServiceClient 时,我正在创建 CapabilityDiscoveryResult (dcr)

var dcr = await discClient.DiscoverCapabilityAsync("Calendar");

dcr.ServiceEndpointUri 的值仍然显示为https://outlook.office365.com/api/v1.0 在此处输入图像描述 当我将此 URi 更改为 v2.0 时,它对我来说效果很好。

这导致使用 V2 DLL 创建事件时出现问题

根据 V2 DLL 依赖项,我已经删除了 DLL 并再次添加了它们(以防万一我错过了什么)。

您能否确认此 URL 是否正确或我遗漏了什么。也让我知道我在哪里可以再次检查。

提前致谢。

4

2 回答 2

1

您能否确认此 URL 是否正确或我遗漏了什么

返回 URL 是完全符合预期的。

您项目引用的 Office 365 API DLL 版本与端点 URI 发现服务返回无关。您可以不引用 Office 365 API DLL,但仍使用发现服务客户端。因此,将 Office 365 API DLL 更改为 V2 不会影响 DiscoveryClient 返回端点。

为 Discovery Client 显式使用 v2.0 服务端点也无济于事,

var discoveryClient = new DiscoveryClient(new Uri(@"https://api.office.com/discovery/v2.0/me/"),
                async () => await GetAccessTokenForResource("https://api.office.com/discovery/"));

v1.0 和 v2.0 发现服务端点之间的区别可以在这里找到。

如果您想使用 V2 Office 365 API,硬编码端点“ https://outlook.office.com/api/v2.0 ”是安全的,根据此处的帖子。

于 2016-05-16T06:03:17.297 回答
0

Outlook 不需要发现,您可以跳过它并创建 OutlookServicesClient 对象,例如:

OutlookServicesClient client = new OutlookServicesClient(new Uri("https://outlook.office.com/api/v2.0"),
        async () =>
        {
            //code to get your token
            return token;
        });

Outlook 端点应为“ https://outlook.office.com/api/v2.0 ”。使用 Microsoft Office 365 邮件、日历和联系人库 v2.0 查看此演示

于 2016-05-13T09:15:12.557 回答