gpt4 book ai didi

c# - Microsoft Graph Api - 请求 Me.Photo 时没有权限访问 token

转载 作者:行者123 更新时间:2023-12-03 02:48:29 27 4
gpt4 key购买 nike

我确保在使用 Microsoft graph api 时我拥有获取用户个人资料照片的所有权限,但每次都会收到“无权限 token ”错误。它没有意义,因为我可以使用相同的 token 检索所有其他信息,例如 DirectReports 和 Manager。

我尝试过不同的端点和不同的调用,例如 Me.Photo.Content 和 Users[id].Photo - 但仍然没有运气

ProfilePhoto GetAvatarForCurrentUser(GraphServiceClient  _graphServiceClient)
{

using (var task = Task.Run(async () => await _graphServiceClient.Me.Photo.Request().GetAsync()))
{
while (!task.IsCompleted)
Thread.Sleep(1000);

var avatar = task.Result;
return avatar;
}
}



public ProfilePhoto GetAvatar()
{
var accessToken = GetAppTokenForAvatar();
var graphserviceClient = new GraphServiceClient(
new DelegateAuthenticationProvider(
(requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
return Task.FromResult(0);
}));

var userAvatar = GetAvatarForCurrentUser(graphserviceClient);

return userAvatar as Microsoft.Graph.ProfilePhoto;
}



public string GetAppTokenForAvatar()
{
AuthenticationContext authenticationContext = new AuthenticationContext("https://login.microsoftonline.com/[app-id]/");

ClientCredential clientCred = new ClientCredential(Config.AdClientID, Config.AdClientKey);
AuthenticationResult authenticationResult = authenticationContext.AcquireTokenAsync("https://graph.microsoft.com", clientCred).Result;
return authenticationResult.AccessToken;
}

我希望收到我自己的个人资料头像,就像我说的,我可以毫无问题地获取 Menager 或其他相关数据。

最佳答案

AuthenticationContext 不正确。当你使用错误的AuthenticationContext时,你会遇到这样的错误。

enter image description here

替换

AuthenticationContext authenticationContext = new AuthenticationContext("https://login.microsoftonline.com/[app-id]/");

AuthenticationContext authenticationContext = new AuthenticationContext("https://login.microsoftonline.com/[tenant-id]/");

根据您的代码,您正在使用客户端凭据,您应该使用Users[id].Photo。并确保您授予管理员对应用程序权限的同意。

enter image description here

关于c# - Microsoft Graph Api - 请求 Me.Photo 时没有权限访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395450/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com