簡體   English   中英

無法使用 .Net SDK 從 Microsoft Graph 獲取 MailboxSettings

[英]Cannot get MailboxSettings from Microsoft Graph with .Net SDK

我正在嘗試使用 Ms Graph .Net SDK 和應用程序權限從 Microsoft Graph v1.0 獲取用戶郵箱設置。

我有正確的權限(MailboxSettings.Read 和 User.Read.All)並且他們是管理員同意的。

這是調用的代碼:

    var settings = await graphClient.Users[{userId}].Request()
        .Select(e => new
        {
            e.MailboxSettings
        })
        .GetAsync();

當我打電話時,我收到錯誤:

ErrorAccessDenied,拒絕訪問。 檢查憑據並重試。

我的 graphClient 對象(可能)沒有任何問題,因為我可以成功調用其他資源,例如:

var events = await graphClient.Users[{userId}].Events.Request()

我試圖向 API 發出 HTTP 請求,然后我得到了成功的響應。 (我在創建 graphClient 和獲取 API 調用的身份驗證令牌時使用相同的 clientId、clientSecret 等)。

這是我正在調用的端點:

https://graph.microsoft.com/v1.0/users/{userId}/mailboxSettings

為什么我在使用 SDK 時會出現錯誤? 我的請求不正確還是 SDK 中存在錯誤?

知道了。 這是一個錯誤:https ://github.com/microsoftgraph/msgraph-sdk-dotnet/issues/538 您需要讀取和寫入權限才能讀取 MailboxSettings。

您只能將它與郵箱設置.read 一起使用。

async Task GetMailboxSettings(GraphServiceClient client)
{
    var mailboxSettingsUrl = client.Users["adelev@contoso.onmicrosoft.com"].RequestUrl + "/mailboxsettings";
    HttpRequestMessage hrm = new HttpRequestMessage(HttpMethod.Get, mailboxSettingsUrl);

    await client.AuthenticationProvider.AuthenticateRequestAsync(hrm);

    HttpResponseMessage response = await client.HttpProvider.SendAsync(hrm);

    if (response.IsSuccessStatusCode)
    {
        // Deserialize into OneNotePage object.
        var content = await response.Content.ReadAsStringAsync();
        MailboxSettings mailboxSettings = client.HttpProvider.Serializer.DeserializeObject<MailboxSettings>(content);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM