2016-06-10 1 views
0

이메일에서 사용자 이름을 얻으려고하고 있으며 우리는 모두 같은 비즈니스 도메인에 있습니다. 연락처 목록에서 가져 오려는 경우 게시 방법을 자세히 설명한 게시물 here을 보았습니다. 문제는 내가 직접 시도 할 때 나에게 연락이 있다는 것을 알고 있지만 모든 값을 null로 반환합니다. 다른 연락처 이메일을 사용하면 정보가 잘 전달됩니다.전자 메일에서 어떻게 사용자 이름을 얻을 수 있습니까?

링크에는 다른 방법이 있어야하지만 관리자 권한이 필요하다고 나와 있습니다. 나는 그것을 얻을 수 있지만 usermanager 문서에 대한 모든 링크가 깨졌습니다. 또한 usermanager를 검색해도 Google의 개발자 사이트에는 아무 것도 나오지 않습니다.

var email = Session.getActiveUser().getEmail(); 
Browser.msgBox(email) 

var self = ContactsApp.getContact(email); 
var name = self.getFullName(); 
+1

([I가 getActiveUser()의() getGivenName 어떻게 구글 스크립트]의 가능한 중복 http://stackoverflow.com/questions/15016628/google-script-how-do-i-getgivenname-of- getactiveuser) –

+1

응용 프로그램 스크립트에서 디렉토리 api를 보자. –

+0

Ruben : 나는 그것을 보았다. 마치 usermanager가 교체되었지만, 고마워했다. – Trevor

답변

1

관리자 권한으로 directory api을 사용할 수 있습니다. appscript (Ressources> Advanced Google 서비스) 및 개발자 콘솔에서 관리 API를 강화하는 것을 잊지 마십시오.

function getUserName(email){ 
var result = AdminDirectory.Users.get(email, {fields:'name'}); 
var fullname = result.name.fullName; 
Logger.log(fullname); 
return fullname; 
} 
+0

나는 이것을 시험해 보았고 나는 여전히이 자원/api에 접근 할 권한이 없다는 것을 알았다. 그것을 appscript와 dev 콘솔에서 가능하게합니다. 하지만 더 큰 문제는 내가 다른 사람과 시트를 공유하면 시트를 공유 할 때 액세스 권한이 없다는 오류가 발생하고 액세스 권한을 부여 할 수 없다는 것입니다. 변경 사항은 변경 될 때 다른 사람의 이름으로 목록을 업데이트하는 것입니다. 더 쉬운 방법 일 수 있습니까? – Trevor

+0

농담만으로 효과가있었습니다! 참고로 '{viewType :'domain_public '}'을 Users.get()에 추가하면 공개적으로 사용 가능한 레코드 만 검색되며 관리자 권한은 필요하지 않습니다. 도움 주셔서 감사합니다. – Trevor