繁体   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