网站建设实践心得,企业手机网站建,打开网站代码,wordpress搭的一、背景说明
在已有的项目中#xff0c;已经获取到了Graph的AccessToken并保存在内存里面。所以不希望再通过client secret或者certificate去创建GraphServiceClient对象。希望使用现有的token字符串来创建初始化创建GraphServiceClient从而来实现Graph其他API功能。
二、具…一、背景说明
在已有的项目中已经获取到了Graph的AccessToken并保存在内存里面。所以不希望再通过client secret或者certificate去创建GraphServiceClient对象。希望使用现有的token字符串来创建初始化创建GraphServiceClient从而来实现Graph其他API功能。
二、具体实现
2.1 需要Java Graph SDK依赖 加入到pom.xml文件内 !-- Microsoft Graph SDK for Java --dependencygroupIdcom.microsoft.graph/groupIdartifactIdmicrosoft-graph/artifactIdversion[5.0,)/version/dependency!-- Azure AD Authentication SDK for Java --dependencygroupIdcom.azure/groupIdartifactIdazure-identity/artifactIdversion[1.3,)/version/dependency
2.2 代码片段 public static GraphServiceClient initGraphServiceClient() {IAuthenticationProvider authProvider new IAuthenticationProvider() {Overridepublic CompletableFutureString getAuthorizationTokenAsync(URL requestUrl) {CompletableFutureString future new CompletableFuture();future.complete(Your_AccessToken);return future;}};return GraphServiceClient.builder().authenticationProvider(authProvider).buildClient();}
三、测试
下面代码是实现调用创建GraphServiceClient调用graph api发送带附件的邮件。 public static String sendMail() {try {String mfrom xxxxoutlook.com;String to xxxxoutlook.com;GraphServiceClientRequest graphClient initGraphServiceClient();Message message new Message();message.subject Meet for lunch?;ItemBody body new ItemBody();body.contentType BodyType.TEXT;body.content The new cafeteria is open.;message.body body;LinkedListRecipient toRecipientsList new LinkedListRecipient();Recipient toRecipients new Recipient();EmailAddress emailAddress new EmailAddress();emailAddress.address to;toRecipients.emailAddress emailAddress;toRecipientsList.add(toRecipients);message.toRecipients toRecipientsList;// 构建附件LinkedListAttachment attachmentsList new LinkedListAttachment();FileAttachment attachments new FileAttachment();attachments.name hello word.txt;attachments.oDataType #microsoft.graph.fileAttachment;attachments.contentType text/plain;attachments.contentBytes Base64.getDecoder().decode(SGVsbG8gV29ybGQh);attachmentsList.add(attachments);AttachmentCollectionResponse attachmentCollectionResponse new AttachmentCollectionResponse();attachmentCollectionResponse.value attachmentsList;AttachmentCollectionPage attachmentCollectionPage new AttachmentCollectionPage(attachmentCollectionResponse, null);message.attachments attachmentCollectionPage;// 以指定用户邮箱发送邮件graphClient.users(mfrom).sendMail(UserSendMailParameterSet.newBuilder().withMessage(message).withSaveToSentItems(true).build()).buildRequest().post();log.info(send email success);return success;} catch (Exception e) {e.printStackTrace();log.error(send email error : {}, e.getMessage());return e.getMessage();}}