Microsoft graph api 使用新的microsoft graph auth library java sdk会出现未经授权的错误

Microsoft graph api 使用新的microsoft graph auth library java sdk会出现未经授权的错误,microsoft-graph-api,microsoft-graph-sdks,Microsoft Graph Api,Microsoft Graph Sdks,我正在尝试使用microsoft graph auth库预览。我可以初始化graphClient,但无法获取数据。我正在获取未经授权的401 “代码”:“InvalidAuthenticationToken”, “消息”:“CompactToken解析失败,错误代码:80049217” List scopes=new ArrayList(); scopes.add(“User.Read.All”); ClientCredentialProvider authProvider=新的ClientCr

我正在尝试使用microsoft graph auth库预览。我可以初始化graphClient,但无法获取数据。我正在获取未经授权的401

“代码”:“InvalidAuthenticationToken”, “消息”:“CompactToken解析失败,错误代码:80049217”

List scopes=new ArrayList();
scopes.add(“User.Read.All”);
ClientCredentialProvider authProvider=新的ClientCredentialProvider(应用程序Id,
范围列表,
客户机密,
tenantId,NationalCloud.Global);
IgraphClient graphClient=GraphServiceClient.builder().authenticationProvider(authProvider).logger(logger)
.buildClient();
IUserCollectionPage users=graphClient.users()
.buildRequest()
.get();
List usersList=users.getCurrentPage();
for(用户:usersList){
System.out.println(user.displayName);
}

对于使用客户端凭据进行仅应用程序呼叫,您需要通过范围“”,然后在应用程序注册门户中为User.Read.All授予管理员同意

对于使用客户端凭据进行仅应用程序呼叫,您需要通过作用域“”,然后在应用程序注册门户中授予User.Read.All的管理员同意

权限和代码正常。问题必须与库有关,因为它位于快照中。但我想他们最近做了一些改变,可能已经解决了你面临的问题。尝试从项目中重新构建jar。

权限和代码正常。问题必须与库有关,因为它位于快照中。但我想他们最近做了一些改变,可能已经解决了你面临的问题。尝试从项目中重新构建jar。

List scopes=new ArrayList();作用域。添加(“https://graph.microsoft.com/.default");
List scopes=new ArrayList();添加(“.default”)我尝试了以上两种方法。我有权限授予管理员同意。仍然收到相同的错误。您是否已分析您的令牌以查看其是否具有权限?您可以在任何人都可以共享工作代码或复制我的问题时解析令牌?我想说的是,如果您使用的是msgraphsdkjavaauth,那么就不必担心获得令牌。当您向ClientCredentialsProvider传递客户端id、secret和作用域并使用它直接初始化图形客户端时。@AbhishekKumbhaj能否在门户中显示已授予权限的屏幕截图?您需要授予应用程序权限,而不是授权权限?@Darreller我添加了有问题的权限图片链接。我根据GitHub上的源代码构建JAR。在哪里可以找到更新的JAR?您是否可以重现该问题,或者共享有效的代码<代码>列表范围=新建ArrayList();作用域。添加(“https://graph.microsoft.com/.default");
List scopes=new ArrayList();添加(“.default”)我尝试了以上两种方法。我有权限授予管理员同意。仍然收到相同的错误。您是否已分析您的令牌以查看其是否具有权限?您可以在任何人都可以共享工作代码或复制我的问题时解析令牌?我想说的是,如果您使用的是msgraphsdkjavaauth,那么就不必担心获得令牌。当您向ClientCredentialsProvider传递客户端id、secret和作用域并使用它直接初始化图形客户端时。@AbhishekKumbhaj能否在门户中显示已授予权限的屏幕截图?您需要授予应用程序权限,而不是授权权限?@Darreller我添加了有问题的权限图片链接。我根据GitHub上的源代码构建JAR。在哪里可以找到更新的JAR?您是否可以重现该问题,或者共享有效的代码?
 List<String> scopes = new ArrayList<String>();
    scopes.add("User.Read.All");

ClientCredentialProvider authProvider = new ClientCredentialProvider(app-Id, 
            scopes_list,
            client-Secret,
            tenantId, NationalCloud.Global);

IgraphClient graphClient = GraphServiceClient.builder().authenticationProvider(authProvider).logger(logger)
                .buildClient();

IUserCollectionPage users = graphClient.users()
            .buildRequest()
            .get();
    List<User> usersList = users.getCurrentPage();
    for(User user : usersList) {
        System.out.println(user.displayName);
    }