2012-11-25 5 views
0

getUserLoginId()는 나를 위해 작동하지만 공동 작업자는 사용할 수 없습니다. 우리 모두 편집 권한이 있습니다. 우리 모두는 Gmail 계정을 가지고 로그인합니다. 다음 기능은 onEdit 트리거로 설치됩니다. 뭐가 문제 야? 나는이 링크를 보았다 : 관련된 문제가있는 것 같아 Google script: getUser() not working. 거기에서, 그들은 "API에 로그인"에 대해 이야기합니다. 그래서 나는 그 길을 따라 갔다. 진심으로? 인증을 통해 누가 공유 스프레드 시트를 편집하고 있는지 확인할 수 있습니까? 그것이 실제로 구원의 길이라면 누구든지 그런 일을 수행하도록 작성된 코드를 가지고 있습니까? 아니면 스프레드 시트를 수정하는 권한을 부여한 공동 작업자의 이름을 찾으려면 내 머리를 두드 리거나 다른 스프레드 시트를 보내야 할 운명인가? 실제로 스프레드 시트를 수정하고 있습니까?공동 작업자의 경우 getUserLoginId()가 적용되지 않습니다.

function happyFunTime() { 
     var s = SpreadsheetApp.getActiveSheet(); 
     var r = s.getActiveCell(); 
     var timeLastCalledColumnOffset = getTimeLastCalledColumnOffset(); 

     timeLastCalledColumnOffset++; 

     var dateCell = s.getRange(r.getRow(), timeLastCalledColumnOffset); 
     var targetSheetName=setRowColor(i); 
     var user=Session.getActiveUser().getUserLoginId(); 
     var comment="Last Edited By: " + user; 
     dateCell.setComment(comment); 

     } 

답변

0

Session.getActiveUser()는 특정 도메인 내의 사용자에게만 적용됩니다. 또는 스크립트가 웹 앱으로 배포되고 앱을 실행하는 사용자로 실행되도록 설정되어있는 경우

귀하의 경우 두 가지 모두 사실입니다. 그래서, 나는 운이 없네.

+0

모든 사용자는 gmail.com (mail.google.com) 도메인 내에 있습니다. –

+0

귀하가 언급 한 것처럼 소비자 계정은 Google Apps 계정이 아닙니다. Google은 귀하가 다른 Gmail 사용자와 관계가 있는지 여부를 판단 할 수 없습니다. Google Apps의 의미에서 모든 회사는 동일한 회사에서 일한다는 것을 알고 있습니다. – mzimmerman

+0

스프레드 시트가 '비공개'로 설정되어있을 때 Google이 다른 Gmail 사용자와 관계가 있는지 확인할 수없는 이유는 무엇입니까? 이 특별한 사용자 집합이 모두 관계가 있어야하는 개인 스프레드 시트에 액세스 할 수 있다면 꽤 좋은 가정이 아닌가? –

관련 문제