2017-04-11 11 views
2

誰かがGoogle Cloud機能内からGoogleのディレクトリAPIにアクセスする方法のコード例はありますか?具体的には、3LOリフレッシュトークンを使用して、ディレクトリAPIへのアクセスを許可されたアクセストークンを生成したいと考えています。おそらくは「googleapis」ライブラリを使用しています。Google Cloud機能のディレクトリAPIへのアクセスを許可する方法

答えて

2

誰もが、私はいくつかのドキュメントを深く掘ってアプリ(カール+ブラウザー)外部から付与されたリフレッシュトークンを取得し、ディレクトリAPIを呼び出すコードにプラグインする方法について説明したthis pageを発見した応答しなかったので:

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); 
     } 
    } 
}); 
関連する問題