簡體   English   中英

用於更改 Azure Active Directory 用戶個人資料圖片的 REST API

[英]REST API to change Azure Active Directory user profile picture

我正在使用https://login.microsoftonline.com/emailid/oauth2/v2.0/token獲取帶有請求表單參數的 Graph API 的訪問令牌

  {"username", email },
            { "password", password },
            { "grant_type", "password" },
            { "client_id", ClientId },
            { "scope", scope },
            { "response_type", "id_token" }

我得到了訪問令牌,然后我點擊了這個 API:

https://graph.microsoft.com/v1.0/users/emailid/photo/$value

早些時候,我得到了回應

{
  "error": {
    "code": "OrganizationFromTenantGuidNotFound",
    "message": "The tenant for tenant guid 'tenant id' does not exist.",
    "innerError": {
      "requestId": "b3ea4878-1234-49be-bc66-c49aa224f9e6",
      "date": "2020-08-23T07:28:21",
      "request-id": "b3ea4878-1234-49be-bc66-c49aa224f9e6"
    }
  }
}

之后,我在 MS Teams 應用程序中登錄並重試,響應更改為

{
  "error": {
    "code": "ResourceNotFound",
    "message": "Resource could not be discovered.",
    "innerError": {
      "date": "2020-08-23T11:03:49",
      "request-id": "c675a441-1234-4c29-9de0-7a5530b2fa53"
    }
  }
}

我嘗試在Graph API Explorer和Postman中調用REST API,結果是一樣的。

然后,我嘗試使用 Outlook API。 https://outlook.office.com/api/v2.0/me/photo/$value和響應是

{
    "error": {
        "code": "MailboxNotEnabledForRESTAPI",
        "message": "REST API is not yet supported for this mailbox."
    }
}

未為用戶啟用郵箱,因此可以理解消息。 但我想知道,有什么方法可以更改 azure 活動目錄中用戶的個人資料圖片。 並且用戶僅使用 ms 團隊。 如果我從 MS Teams 應用程序更改圖片,它會在任何地方反映出來,例如團隊應用程序、廣告用戶頁面或 Microsoft 帳戶設置頁面。 我想要這樣的東西,從代碼中改變圖片,它反映了無處不在的變化。

謝謝

調用 2 個 Microsoft Graph 端點https://graph.microsoft.com/v1.0/users/emailid/photo/$valuehttps://outlook.office.com/api/v2.0/me/photo/$value ,您需要 O365 訂閱和 Exchange Online 許可證。

看起來您沒有它們(也許您有 O365 訂閱但沒有 Exchange Online 許可證),因此您會收到錯誤消息。 因此您不能使用 Microsoft Graph API 來更新圖片。

MS Teams 和 Azure 門戶正在使用當前未公開的其他內部 API 來更新圖片。

除了基於我的測試,當我使用 Microsoft Graph 更新用戶個人資料圖片時,即使我有帶有 Exchange Online 許可證的 O365 訂閱,它也只會反映在 O365 門戶和 AAD 門戶上,它不會更改 MS 中的用戶個人資料圖片團隊。 但是當我從 MS Teams 應用程序更改圖片時,它會像您提到的那樣到處反映。

如果我使用 Microsoft Graph API,我不確定它是否會在一段時間后對 Microsoft Teams 生效。 但是從微軟 Teams 應用程序修改的圖片對其他地方立即生效。

我還嘗試使用Azure AD Graph API來更新它。 但是雖然它返回204 No Content ,但圖片在任何地方都沒有改變(O365 和 Azure AD)。

唯一官方公開的 API 應該是 Microsoft Graph API。 但正如我所解釋的,它也有一些局限性。

如果您對 MS Teams 使用的內部 API 感興趣,可以使用 Fiddler4 捕獲它以進行更多調查。

暫無
暫無

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

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