Office 365 Mail API에 액세스하기위한 일괄 처리 작업을 작성하려고합니다. documentation (개념은 매우 명확합니다)을 확인하면서 Java 용으로 작성된 코드 샘플을 찾을 수 없었습니다. this을 찾았지만 java pom 파일을 사용하지만 가능한 경우 REST API 또는 Graphi API를 직접 사용하고 싶습니다.Java에서 Office 365 REST API로 데몬 또는 서비스 응용 프로그램 만들기
사용자가 로그인하지 않고도 Office 365 REST API에 액세스 할 수있는 데몬 서비스를 만드는 방법을 알려줄 수 있습니까?
UPDATE
I했습니다 다음 코드는 http.execute 방법에서 여기 AADL 라이브러리
String tenant="....";
String authority = "https://login.windows.net/"+tenant+"/oauth2/authorize";
ExecutorService service=null;
service= Executors.newFixedThreadPool(1);
try{
AuthenticationContext authenticationContext= new AuthenticationContext(authority,false,service);
String certFile="/mycert2.pfx";
InputStream pkcs12Cert= new SharedFileInputStream(certFile);
AsymmetricKeyCredential credential=AsymmetricKeyCredential.create("....",pkcs12Cert,"pass");
Future<AuthenticationResult> future=authenticationContext.acquireToken("https://outlook.office365.com",credential,null);
System.out.println("Token Received"+future.get().getAccessToken());
String token = future.get().getAccessToken();
HttpGet httpGet = new HttpGet("https://graph.microsoft.com/v1.0/users");
httpGet.setHeader("Authorization", "Bearer "+token);
GraphServices graphServices = new GraphServices();
ResponseEntity<String> responseEntity;
//responseEntity = graphServices.getEmails(token); //Throws the same Unauthorized exception
HttpClient httpClient= HttpClients.createDefault();
HttpResponse response=httpClient.execute(httpGet);
//response contains Unauthorized access
HttpEntity entity=response.getEntity();
}
catch (MalformedURLException e){
e.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
}
}
에게 허가되지 않은 오류를 사용하여 토큰을 얻을 수
HttpResponseProxy {HTTP /1.1 401 Unauthorized [Content-Type : application/json]; charset = utf-8, 서버 : Microsoft-IIS/8.5, 요청 ID : 49ca360f-ab4b-42d5-a4b0-9676e4244c21, 클라이언트 요청 아이디 : 49ca360f-ab4b-42d5-a4b0-9676e4244c21, x-ms- AGSFE_IN_8 ","ADSiteName ":"SliceA ","ScaleUnit ":"003 ","Host ":" WST "}}, X-Powered-By : ASP.NET, 날짜 : 2014 년 9 월 6 일 20:43:24 GMT, 콘텐츠 길이 : 244] ResponseEntityProxy {[콘텐츠 유형 : application/json] 캐릭터 = UTF-8, 콘텐츠 길이 : 244 청크 : FALSE]}}
eyJ0eXAiOiJKV1QiLCJxcy76FRUlljRV9tb3RXVkpLSHJ3TEJiZF85cyIsImtpZCI6IlliUkFRUlljRV9tb3RXVkpLSHJ3TEJiZF85cyJ9.eyJhdWdfsas32sub2ZmaWNlMzY1LmNvbSIsImlzcyI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0L2YwMjYzMzUzLWFlYjItNGE4YS1iZThhLTc3Mzc3MmE2MGJlMy8iLCJpYXQiOjE0NzMxOTQ4MjIsIm5iZiI6MTQ3MzE5NDgyMiwiZXhwIjoxNDczMTk4NzIyLCJhcHBpZCI6IjhhNjc2ZjJkLWU1M2MtNDViNy05MzhhLTdiOTE1YjVkZTRiNiIsImFwcGlkYWNyIjoiMasdff4577dHMud2luZG93cy5uZXQvZjAyNjMzNTMtYWViMi00YThhLWJlOGEtNzczNzcyYTYwYmUzLyIsIm9pZCI6IjQ3NDhkZDE5LTAxOTUtNDcwOC04MTNkLTQxMTdhNDhlMTdmOCIsInN1YiI6IjQ3NDhkZDE5LTAxOTUtNDcwOC04MTNkLTQxMTdhNDhlMTdmOCIsInRpZCI6ImYwMjYzMzUzLWFlYjItNGE4YS1iZThhLTc3Mzc3MmE2MGJlMyIsInZlciI6IjEuMCJ9.BKt54345DIfv2WWT4pQ - NUY-0aHkkht4332r7E4d5mP-EAEKmcQe7y0IPjkYGZTNhyNiG2tVAyb56Gcbessdsfewz_BNoAolTVukxttXc-pFY1_Ol5Adc8T5yio43ixfs88mrVRqZEHsb7c-wjO-otBXocZs8waYXdre e83g1JtcnULs7bAGp3VBUhMjuJ2u87363Yq3lfse39_Pt6tRw]
두 가지 모두 로그인 UI로 사용자를 인증하는 용도로 사용됩니다. 우리는 백그라운드 서비스를 구축하고 있으며 이는 우리에게는 도움이되지 않지만 도움을 주셔서 감사합니다. – WowBow
관리자가 처음으로 앱에 동의하는 경우에만 인증이 필요합니다. 초기 동의가 제공된 후에 해당 부분을 건너 뛸 수 있습니다. –
은 적어도 한 번 사용자 상호 작용없이 앱 자격증 명을 부여하지 않는다는 것을 의미합니까? 내가 Azure 측의 설정이 완료되면 앱에 자격 증명이 주어질 것이라고 생각했습니다. 나는 앱에서 사용자 상호 작용이있을 거라 생각하지 않았다. – WowBow