簡體   English   中英

如何使用 Microsoft Graph API 更新個人資料圖片

[英]How to Update Profile Picture with Microsoft Graph API

我正在開發 a.Net Core 3.1 API,它將連接到 Microsoft Graph 以更新公司員工的照片。

但是,我在幾個地方搜索並沒有找到任何代碼或方法可以幫助我在沒有使用該用戶帳戶登錄的情況下更改用戶的照片。

有什么方法可以在不使用 Microsoft Graph 登錄的情況下更改用戶的照片?

請記住,我的用戶是 Azure AD 的管理員,並且我的應用程序已發布“User.ReadWrite.All”。

首先,您需要的是這個 api ,您可以看到它提供了應用程序權限,以便您可以使用客戶端憑據流生成訪問令牌並使用它來調用 api。 客戶端憑證流使用戶無需登錄和生成訪問令牌,即可滿足您的要求。

這是細節,您可以通過此請求生成令牌,請不需要為您的 azure 廣告應用程序設置User.ReadWrite.All application permission

在此處輸入圖像描述

您可以使用以下令牌調用 api:

在此處輸入圖像描述

如果您發現您的令牌無法正常工作,也許您可以嘗試將Group.ReadWrite.All application permission添加到您的 azure 廣告應用程序中,因為這是 api 文檔中提到的已知問題

也許您需要的是代碼片段,然后您可以使用 graph sdk 來調用 ms graph api:

var scopes = new[] { "https://graph.microsoft.com/.default" };
var tenantId = "your_tenant_name.onmicrosoft.com";
var clientId = "azure_ad_app_client_id";
var clientSecret = "client_secret_for_the_azuread_app";
var clientSecretCredential = new ClientSecretCredential(
    tenantId, clientId, clientSecret);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
using var stream = new System.IO.MemoryStream(Encoding.UTF8.GetBytes(@"Binary data for the image"));

await graphClient.Users["user_id_which_you_wanna_change_photo_for"].Photo.Content
    .Request()
    .PutAsync(stream);

暫無
暫無

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

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