首页 > 解决方案 > 从 Angular 应用程序检索访问令牌后尝试在 Java 中调用 Microsoft Graph API

问题描述

我尝试在网上学习一些示例,但它们并不是很有帮助,而且官方的 Microsoft 文档可能有些混乱,而且到处都是。

我有令牌,其中包括标题中的随机数。

我已经在我的 pom.xml 文件中添加了 Microsoft Graph 依赖项,并且所有内容都已设置,但我不确定如何使用访问令牌实际实现该方法并进行调用以获取已登录的用户信息。

https://graph.microsoft.com/v1.0/me

我已经在 Azure 中设置了我的应用程序并添加了 API 权限。

任何朝着正确方向的帮助或指导都会有所帮助。

标签: javajwtmicrosoft-graph-api

解决方案


您可以参考登录用户请求的示例,请参见此处

IGraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();

// for "/me" endpoint    
User user = graphClient.me().buildRequest().get(); 

// for "/users/{id | userPrincipalName}" endpoint
// User user = graphClient.users("{id}").buildRequest().get() 

用accessToken获取authProvider,参考这篇文章

public IGraphServiceClient getAuthProvider() {
    IAuthenticationProvider mAuthenticationProvider;

    try {
        String accessToken = "xxxxxxxxxxxxx";
        mAuthenticationProvider = request -> request.addHeader("Authorization", "Bearer " + accessToken);
    } catch (Exception e) {
        throw new Error("Could not create a graph client: " + e.getLocalizedMessage());
    }

    return GraphServiceClient.builder()
                             .authenticationProvider(mAuthenticationProvider)
                             .buildClient();
}

有关详细信息,请使用带有 Java的 Microsoft Graph SDK 进行 API 调用。


推荐阅读