HAR*_*ISH 1 java spring-boot microsoft-graph-api
我正在使用 Microsoft Graph api 在 Spring Boot 应用程序中发送和接收邮件,
我使用了 graph api 的依赖项,例如
<dependency>
<groupId>com.microsoft.graph</groupId>
<artifactId>microsoft-graph</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<!-- This dependency is only needed if you are using the TokenCrendentialAuthProvider -->
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.2.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在代码中我的导入是
import com.azure.identity.ClientSecretCredential;
import com.azure.identity.ClientSecretCredentialBuilder;
import com.microsoft.graph.authentication.TokenCredentialAuthProvider;
import com.microsoft.graph.models.BodyType;
import com.microsoft.graph.models.EmailAddress;
import com.microsoft.graph.models.ItemBody;
import com.microsoft.graph.models.Message;
import com.microsoft.graph.models.Recipient;
import com.microsoft.graph.models.UserSendMailParameterSet;
import com.microsoft.graph.requests.GraphServiceClient;
import com.microsoft.graph.requests.MessageCollectionPage;
Run Code Online (Sandbox Code Playgroud)
代码出现错误
ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
.clientId(CLIENT_ID)
.clientSecret(CLIENT_SECRET).tenantId(TENANT_GUID).build();
TokenCredentialAuthProvider tokenCredentialAuthProvider = new TokenCredentialAuthProvider(SCOPES, clientSecretCredential);
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( tokenCredentialAuthProvider ).buildClient();
MessageCollectionPage messagesPage = graphClient.me().messages()
.buildRequest()
.select("Sender,Subject")
.top(10)
.get();
Run Code Online (Sandbox Code Playgroud)
我在代码中遇到这样的错误。
(DirectJDKLog.java:175) - Servlet.service() for servlet [dispatcherServlet] in context with path [/ldesk] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.azure.identity.implementation.IdentityClient] with root cause
java.lang.NoClassDefFoundError: Could not initialize class com.azure.identity.implementation.IdentityClient
at com.azure.identity.implementation.IdentityClientBuilder.build(IdentityClientBuilder.java:113) ~[azure-identity-1.2.5.jar:?]
at com.azure.identity.ClientSecretCredential.<init>(ClientSecretCredential.java:50) ~[azure-identity-1.2.5.jar:?]
at com.azure.identity.ClientSecretCredentialBuilder.build(ClientSecretCredentialBuilder.java:62) ~[azure-identity-1.2.5.jar:?]
Run Code Online (Sandbox Code Playgroud)
如果使用 microsoft-graph 3.4.0,则无法使用 microsoft-graph-auth 创建 IAuthenticationProvider 对象。
预览:
ClientCredentialProvider authProvider = new ClientCredentialProvider(CLIENT_ID, SCOPES, CLIENT_SECRET, TENANT_GUID, NATIONAL_CLOUD);
IGraphServiceClient graphClient = GraphServiceClient
.builder()
.authenticationProvider(authProvider)
.buildClient();
User user = graphClient.users(user_id).buildRequest().get();
Run Code Online (Sandbox Code Playgroud)
新版本:
首先,添加azure-identityPom.xml。
ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
.clientId(clientId)
.clientSecret(clientSecret)
.tenantId(tenant)
.build();
TokenCredentialAuthProvider tokenCredentialAuthProvider = new TokenCredentialAuthProvider(scopes, clientSecretCredential);
GraphServiceClient graphClient =
GraphServiceClient
.builder()
.authenticationProvider(tokenCredentialAuthProvider)
.buildClient();
User me = graphClient.users(user_id).buildRequest().get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8012 次 |
| 最近记录: |