我希望能够在Azure Active目录中获取所有用户的office365照片。
现在我可以使用图形SDK
获取当前用户的电子邮件GraphServiceClient graphClient = SDKHelper.GetAuthenticatedClient();
public async Task<string> GetMyEmailAddress(GraphServiceClient graphClient)
{
User me = await graphClient.Me.Request().Select("mail,userPrincipalName").GetAsync();
return me.Mail ?? me.UserPrincipalName;
}
但我不确定如何将the getting photos part中的https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/profilephoto_get整合到代码中。
赞赏任何帮助或代码示例!!
答案 0 :(得分:1)
您使用graphClient.Me.Photo.Content
获取照片,该照片将在视频流中检索照片的二进制数据:
public async Task GetPictureAsync()
{
GraphServiceClient graphClient = GetGraphServiceClient();
var photo = await graphClient.Me.Photo.Content.Request().GetAsync();
using (var fileStream = File.Create("C:\\temp\\photo.jpg"))
{
photo.Seek(0, SeekOrigin.Begin);
photo.CopyTo(fileStream);
}
}
答案 1 :(得分:0)
这有助于获取图像
/////////////////////////////////获取照片///////////// ///////
GraphServiceClient graphServiceClient = GetAuthenticatedGraphServiceClient();
流照片=等待graphServiceClient.Me.Photo.Content.Request()。GetAsync();
如果(照片!= null)
{
MemoryStream ms = new MemoryStream();
photo.CopyTo(ms);
byte[] buffer = ms.ToArray();
string result = Convert.ToBase64String(buffer);
string imgDataURL = string.Format("data:image/png;base64,{0}", result);
ViewBag.ImageData = imgDataURL;
}
else
{
ViewBag.ImageData = "";
}
答案 2 :(得分:-2)
如果您转到图表资源管理器:https://developer.microsoft.com/en-us/graph/graph-explorer 您可以使用您的电子邮件地址登录。您应该看到“我的照片”查询选项。有一个文档链接带你到这里: https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/profilephoto_get 您将看到一个表格,表明这仅适用于学校或工作帐户 - 而不适用于您的个人Microsoft帐户。