2016-06-10 52 views
0

我試圖從他們的電子郵件中獲取用戶名,我們都在同一業務領域。我看到一篇帖子here詳細說明了如果你想從聯繫人列表中拉出來的話。問題是當我自己嘗試時,它知道我有聯繫,但它將所有值都返回爲空。如果我使用其他聯繫人電子郵件,那麼它會將信息拉得很好。如何從電子郵件中獲取用戶名?

該鏈接說應該有另一種方式來做到這一點,但你需要管理員權限。我可以得到,但所有到usermanager文檔的鏈接都被打破了。此外,搜索usermanager在Google開發人員網站上沒有提供任何內容。

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

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

的可能的複製([谷歌腳本如何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(資源>高級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和開發控制檯中啓用它。 但是,更大的問題是,如果我與其他人共享該工作表來運行它們,他們會收到一條錯誤消息,說他們沒有訪問權限,我無法授予他們訪問權限。 這個背後的想法是,當他們做出改變時用某人的名字更新列表,也許有一種更簡單的方法? – Trevor

+0

只是開玩笑的工作!僅供參考,如果您將'{viewType:'domain_public'}'添加到Users.get(),那麼它只會搜索公開可用的記錄,並且您不需要管理員權限。 感謝您的幫助! – Trevor

相關問題