无法创建用于访问Office365日历的发现客户端对象

无法创建用于访问Office365日历的发现客户端对象,office365,Office365,我需要将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";

我需要将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;
        }
    }
但每次发现客户端创建时都会抛出以下错误

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

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

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

没有。。我的应用程序已在Azure目录中注册,并且我的ClientID和Secret的有效期为一年以上。哪行代码会产生错误?你能捕获一个网络跟踪来看看线路上发生了什么吗?我实际上也遇到了同样的问题。我知道该应用程序已注册,并且具有有效的ClientID和应用程序密钥。但是,我仍然会得到“未授权”。请检查您是否已为“用户和组”设置权限。如果没有,请选择“启用登录并阅读用户配置文件”。这可能会有帮助Hey Shekhar Kumar Ghirdharwall我目前也有同样的问题,你解决了吗?
{"Exception of type 'Microsoft.Office365.Discovery.DiscoveryFailedException' was thrown."}
ErrorCode : Unauthorized