如何授权访问 Google Cloud Function 中的目录 API

How to authorize access to Directory API in Google Cloud Function

有人有关于如何从 Google 云功能中访问 Google 的目录 API 的代码示例吗?更具体地说,我想使用 3LO 刷新令牌生成一个访问令牌,该令牌被授权访问目录 API,可能使用 'googleapis' 库。

由于没有人回应,我深入研究了一些文档并找到了 this page,其中描述了如何获取从应用程序外部(curl + 浏览器)授予的刷新令牌并将其插入代码以调用目录 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);
        }
    }
});