2016-07-21 12 views
1

매시간 비공개 Google 시트를 다운로드하는 스크립트를 자동으로 실행하려고합니다. 나는 대화 형으로 R을 사용할 때 항상 정상적으로 작동합니다. launchd으로 스크립트를 자동화 한 후 처음 1 시간 동안 정상적으로 작동합니다.비 대화식 자동 새로 고침 Google 보완 시트가 포함 된 오래된 OAuth 토큰

launchd으로 자동화를 시작한 후 1 시간 작동이 중지됩니다. 문제는 1 시간 후에 액세스 토큰이 변경되고 비대화 형 버전이 OAuth 토큰의 자동 새로 고침을 기다리지 않는다는 것입니다. 오류 보고서에서 알 수있는 오류는 다음과 같습니다.

부적절한 자동 OAuth 토큰. 연결 통화를 열 수 없습니다 : -> -> cache_token -> saveRDS - gs_auth ...> .gz 파일 또한 : .gz 파일 (파일 모드)에서 오류 경고 메시지 : .gz 파일에서 (파일 모드) : 할 수 없습니다 '.httr-OAuth를'압축 된 파일을 열 가능성이 이유 실행 내가 제니 브라이언의 googlesheets 패키지를 사용하고

을 중단 '사용 권한이 거부되었습니다'.

gToken <- gs_auth() # Run this the first time to get the oAuth information 
saveRDS(gToken, "/Users/…/gToken.rds") # Save the oAuth information for non-interactive use 

내가 다음 파일에 다음 스크립트를 사용하여 내가 launchd와 자동화 :

gs_auth(token = "/Users/…/gToken.rds") 

어떻게 여기에 내가 처음에 시트를 등록하는 데 사용하는 다음의 OAuth 토큰을 저장 코드입니다 launchd으로 스크립트를 자동으로 실행할 때이 오류를 피할 수 있습니까?

답변

0

launchd에 대해서는 잘 모르겠지만 Windows 작업 평면에서 R 스크립트를 자동으로 실행하려고 할 때 동일한 문제가 발생했습니다. 나를 위해 트릭은 FALSE로 '캐시'속성 값을 않았다 변경 [1] : https://i.stack.imgur.com/pprlC.png

당신은 여기에 솔루션을 찾을 수 있습니다

: 토큰 파일을 얻기 위해 https://github.com/jennybc/googlesheets/issues/262

브라우저에서 한 번 인증하기를, I 를 통해 이후

token_file <- gs_auth(new_user = TRUE, cache = FALSE) 
saveRDS(token_file, "googlesheets_token.rds") 

자동 로그인 :

gs_auth(token = paste0(path_scripts, "googlesheets_token.rds"), 
verbose = TRUE, cache = FALSE) 
이런 짓을