2016-09-29 97 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

相關問題