2015-01-09 2 views
0

콘솔 응용 프로그램으로 실행할 때 인증 할 수있는 문제가 있습니다. 그러나 Windows 서비스로 만들고 설치하면 인증 할 수 없습니다. 나는 로그 디버그 문을 사용하여 문제를 격리했다.C# Google API 인증

UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
     new ClientSecrets { 
      ClientId = "myClientId", 
      ClientSecret = "myClientSecret" 
     }, 
     new[] { 
      CalendarService.Scope.Calendar 
     }, 
     "myProjectName", 
     CancellationToken.None, 
     new FileDataStore("myProjectName") 
).Result; 

위의 내용에 문제가 있습니다. 이것은 try/catch로 둘러싸여 있지만 예외는 발생하지 않습니다. 이 바로 다음에 로그 문이 있지만 결코 실행되지 않습니다. 내 생각 엔 FileDataStore 문제입니다. 기본적으로 Google 스토어는이 프로그램을 수동으로 실행할 때 내 프로그램에서 찾을 수있는 % AppData %이지만 로컬 시스템 또는 로컬 서비스와 같은 계정 유형을 제공해야하는 웹 서비스 인 경우 사용자 I로 설정해야합니다 생각한다. 내 생각 엔이 방법으로 % AppData %에서 파일을 찾을 수 없습니다. 누구든지 Windows 서비스에서 % AppData %를 찾는 데 도움이되는 제안이 있습니까? 아니면이 상황에서 Windows 서비스가 좋지 않은 접근 방법입니까?

도움을 주셔서 감사합니다.

답변

1

이 접근법은 인증을 요청하기 위해 브라우저를 실행하기 때문에 UI가있는 경우에만 유효합니다. 서비스의 경우 서버에 인증서를 설치하는 것을 의미하는 또 다른 종류의 키를 요청해야합니다. 그것은 OAuth2ServiceAccount에 설명되어 있습니다.