gpt4 book ai didi

office365 - 无法创建用于访问 Office365 日历的 Discovery Client 对象

转载 作者:行者123 更新时间:2023-12-02 10:21:31 27 4
gpt4 key购买 nike

我需要将 Office 365 日历集成到我的应用程序中。我正在这样做

    public static string ClientID = SettingsHelper.ClientId;
public static Uri _returnUri = new Uri(SettingsHelper.RedirectUri);
public const string CommonAuthority = "https://login.windows.net/Common";
public const string DiscoveryResourceId = "https://api.office.com/discovery/";

public static AuthenticationContext _authenticationContext { get; set; }
private static async Task<string> GetTokenHelperAsync(AuthenticationContext context, string resourceId)
{
string accessToken = null;
AuthenticationResult result = null;
//result = await context.AcquireTokenAsync(resourceId, ClientID, _returnUri); // This Overload is not available
result = await context.AcquireTokenAsync(resourceId, new ClientCredential(ClientID, SettingsHelper.AppKey));
accessToken = result.AccessToken;
return accessToken;
}

public static async Task<OutlookServicesClient> EnsureClientCreatedAsync()
{
try
{
string authority = CommonAuthority;
_authenticationContext = new AuthenticationContext(authority);
DiscoveryClient discoveryClient = new DiscoveryClient(async () => await GetTokenHelperAsync(_authenticationContext, DiscoveryResourceId));
CapabilityDiscoveryResult result = await discoveryClient.DiscoverCapabilityAsync("Calendar");
var client = new OutlookServicesClient(result.ServiceEndpointUri, async () => await GetTokenHelperAsync(_authenticationContext, result.ServiceResourceId));
return client;
}
catch (Exception)
{
if (_authenticationContext != null && _authenticationContext.TokenCache != null)
_authenticationContext.TokenCache.Clear();
return null;
}
}

用于创建客户端对象

async void CreateClient()
{
OutlookServicesClient client = await NewOffice365Authentication.EnsureClientCreatedAsync();
var eventsResults = await client.Me.GetCalendarView(DateTimeOffset.Now.Subtract(new TimeSpan(10, 0, 0)), DateTimeOffset.Now.AddHours(10)).ExecuteAsync();
}

但是每次创建发现客户端都会抛出以下错误

{"Exception of type 'Microsoft.Office365.Discovery.DiscoveryFailedException' was thrown."}
ErrorCode : Unauthorized

请帮助我创建发现客户端对象。

最佳答案

根据错误,我猜测您的应用程序未在 Azure AD 中注册,或者您的客户端 ID 值无效。

关于office365 - 无法创建用于访问 Office365 日历的 Discovery Client 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28018843/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com