2017-04-11 69 views

回答

2

因爲沒有人回答我更深入地挖掘一些文檔,發現this page描述如何利用從應用程序(捲曲+瀏覽器)之外授予刷新標記,並將其插入代碼來調用目錄API:

const google = require('googleapis'); 
const admin = google.admin('directory_v1'); 
const OAuth2 = google.auth.OAuth2; 

var oauth2Client = new OAuth2(
    'client_id', 
    'client_secret', 
    'redirect_url' 
); 

//Store a refresh token from outside Cloud Functions 
oauth2Client.setCredentials({ 
    refresh_token: 'refresh_token_from_curl' 
}); 

//Make sure the access_token is fresh (they expire every hour-ish) 
oauth2Client.refreshAccessToken(function(err,tokens){ 
}); 

admin.tokens.list({ 
    auth: oauth2Client, 
    userKey: userEmail 
}, function(err,response){ 
    if (err) { 
     console.log('The Directory API returned an error: ' + err); 
     return reject(err); 
    } 
    var tokens = response.items; 
    if(tokens == null){ 
     console.log('No tokens for ' + userEmail); 
    } 
    else { 
     console.log('Tokens:'); 
     for (var i = 0; i < tokens.length; i++){ 
      var token = tokens[i]; 
      console.log('clientId: ' + token.clientId); 
      console.log('displayText: ' + token.displayText); 
      console.log('anonymous: ' + token.anonymous); 
      console.log('nativeApp: ' + token.nativeApp); 
      console.log('userKey: ' + token.userKey); 
      console.log('scopes: ' + token.scopes); 
     } 
    } 
});