2017-12-21 38 views
0

GMail API를 사용하기 시작했으며 내 로컬 컴퓨터에서 정상적으로 작동합니다. Google 권한 페이지가 열리 며 내 계정을 선택할 수 있습니다. 그런 다음 return json 토큰을 저장하고이 토큰이 제거되었는지 다시 확인합니다.Gmail OAUTH가 게시 할 때 권한을 요청하지 않습니다.

서버에 게시하면 OAUTH 페이지가 표시되지 않고 응용 프로그램이 '스레드가 중단되었습니다'예외로 인해 시간 초과가 나타납니다.

내 코드;

try 
    { 
     using (var stream = new FileStream(HttpContext.Current.Server.MapPath("~/credentials/client_id.json"), FileMode.Open, FileAccess.Read)) 
     { 
      string credPath = HttpContext.Current.Server.MapPath("~/credentials/gmail_readonly_token.json"); 

      _credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
       GoogleClientSecrets.Load(stream).Secrets, 
       Scopes, 
       "user", 
       CancellationToken.None, 
       new FileDataStore(credPath, true)).Result; 
      db.writeLog("INFO", "Gmail Credentials Saved","Credential file saved to: " + credPath); 

     } 
     // Create Gmail API service. 
     service = new GmailService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = _credential, 
     }); 
    } 
    catch (Exception e) 
    { 
     db.writeLog("Error", "Failure when creating Gmail class", e.Message, null, _username, null); 
    } 

'client_id.json'(공식적으로 client_secret.json) 파일에서 변경해야 할 것이 있습니까? 내가 변경 한 유일한 것은 redirect_uris 라인입니다.

다른 모든 의견은 환영 할만한 질문 일 뿐이며 비슷한 질문은 here이지만 답변이 없습니다.

감사합니다.

대니.

답변

0

첫 번째는 의도 한 사용 사례 (클라이언트 측)를 수행했기 때문에 효과가있었습니다. 그러나 서버에서 인증을 구현하려면 Implementing Server-Side AUthorization 가이드를 따르십시오.

+0

답변이 늦어서 죄송합니다. 나는 이것을 줄 것이다. 특히 IIS 응용 프로그램 풀이 나를 실행하도록 설정되어있을 때, IIS Express에서 실행되는 웹 응용 프로그램과 IIS에서 실행되는 웹 응용 프로그램의 차이점을 보려고 고심하고있다. 건배! – RexNoctis