8

ドメインのグループにユーザーを追加/削除するサーバー アプリケーションを作成しようとしています。ユーザーとのやり取りはなく、サーバー間アプリケーションであることに注意してください。

アプリケーションを Google API コンソールに登録し、キーをダウンロードして、発行して .pem に変換しました。

openssl pkcs12 -in my_google_key.p12 -out my_google_key.pem -nocerts -nodes

次に、ドメイン管理、セキュリティ -> 詳細設定 -> 認証 -> OAuth クライアント アクセスの管理に移動しました。そこで、承認済み API クライアントにレコードを追加しました。コンソールのサービス アカウントから取得したクライアント ID を使用し、スコープを使用しました。

https://www.googleapis.com/auth/admin.directory.group.

を使用して、nodejs用のgoogleapisをインストールしました

npm install googleapis

そして、ここに私のコードがあります:

var googleapis = require('googleapis');

var SERVICE_ACCOUNT_EMAIL = 'My Service Account E-mail Address';
var SERVICE_ACCOUNT_KEY_FILE = 'my_google_key.pem'; // The .pem file is at the root of my application

var jwt = new googleapis.auth.JWT(
    SERVICE_ACCOUNT_EMAIL,
    SERVICE_ACCOUNT_KEY_FILE,
    null,
    ['https://www.googleapis.com/auth/admin.directory.group']
);

var client;

googleapis
.discover('admin', 'directory_v1')
.execute(function(err, data) {
    client = data;

    jwt.authorize(function(err, result) {
        console.log(jwt);
        client.admin.groups.list({
            "customer": "my_customer", // This is actually "my_customer"
            "domain": "domain.com" // The domain name I administer
        })
        .withAuthClient(jwt)
        .execute(function(err, result) {
            console.log(err);
            console.log(result);
        });
    });
});

そして、このコードを実行した結果は次のとおりです。

{ errors: 
    [ { domain: 'global',
        reason: 'forbidden',
        message: 'Not Authorized to access this resource/api' } ],
    code: 403,
    message: 'Not Authorized to access this resource/api' }

私は何が欠けていますか?Admin SDK を使用してアプリケーションを承認するにはどうすればよいですか?

4

1 に答える 1