2016-09-29 62 views
0

我试图让我的Google Apps脚本网络应用的用户切换Google帐户。我试着通过超链接将用户引导至帐户选择:在Google Apps脚本HTML服务中切换帐户

<a href="https://accounts.google.com/AccountChooser?continue=https://script.google.com/a/macros/[domain]/s/[site_id]/exec">Switch Accounts</a> 

如果用户选择的是屏幕上的另一帐户,用户返回到Web应用程序仍然记录在原来的帐户下。

我在做什么错误,还是有另一种方式允许用户在Web应用程序中切换帐户?

回答

0

尽管您可能需要Google Apps Script HTML Service来提供可与您的自定义用户界面的服务器端Apps脚本功能交互的网页,但您可能还需要Admin SDK's Directory API来管理用户。

如文档中表示,

管理SDK Directory服务允许您使用管理SDK的API目录中的Apps脚本。此API为Google Apps域(包括经销商)的管理员提供管理其域中的设备,组,用户和其他实体的能力。

首先,您可以使用users: list列出所有可能的用户。例如,你可以在其中可以按名字排序域列表中的用户:

function listAllUsers() { 
    var pageToken, page; 
    do { 
    page = AdminDirectory.Users.list({ 
     domain: 'example.com', 
     orderBy: 'givenName', 
     maxResults: 100, 
     pageToken: pageToken 
    }); 
    var users = page.users; 
    if (users) { 
     for (var i = 0; i < users.length; i++) { 
     var user = users[i]; 
     Logger.log('%s (%s)', user.name.fullName, user.primaryEmail); 
     } 
    } else { 
     Logger.log('No users found.'); 
    } 
    pageToken = page.nextPageToken; 
    } while (pageToken); 
} 

然后,使用users: getretrieve a user

下面是通过电子邮件地址获取用户的示例代码,并将其所有数据记录为JSON字符串。

function getUser() { 
    var userEmail = '[email protected]'; 
    var user = AdminDirectory.Users.get(userEmail); 
    Logger.log('User data:\n %s', JSON.stringify(user, null, 2)); 
} 

而且,请注意,有Directory API: Prerequisites,也需要在使用此API中Authorize requests描述的授权。

这似乎有点令人困惑,所以我建议您请通过给定的链接了解更多信息。

快乐编码!

+0

Hi Tayam。感谢您的回复,我非常感谢,但是,我不相信您回答了我的具体问题。首先,我已经在使用Google Apps脚本的HTML服务为用户提供html页面。问题是,如果用户使用一个Google帐户访问该网页,但希望用另一个Google帐户访问该网页(因为可能有一个帐户具有另一个帐户没有的权限,例如脚本所在域的成员),则可以我向用户提供在我的页面上切换帐户的方法? – h0dges

相关问题