google-admin-sdk
v5.0.0
Published
node.js library that wraps the Directory and Groups APIs in the Google Admin SDK
Downloads
33
Readme
google-admin-sdk
node.js library that wraps Google's Admin SDK. A subset of CRUD actions in the Directory API are supported.
Initializing the library
The library includes 4 submodules:
OrgUnitProvisioning
for CRUD operations on OrgUnitsUserProvisioning
for CRUD operations on Google Apps usersGroupProvisioning
for CRUD operations on GroupsBatch
for batching requests
To use the library, you must have your Google credentials in the form
opts = {
client: {
id: '12345.apps.googleusercontent.com',
secret: 'abcdefgh'
},
token: {
refresh: 'your_refresh_token'
}
};
The library is designed such that you can initialize and use any submodule independently of the other three. Any or all submodules can be initialized using the credentials above:
admin_sdk = require('google-admin-sdk');
user_provisioning = new admin_sdk.UserProvisioning(opts);
Example usage
new_user = {
name: {
givenName: 'Grace',
familyName: 'Hopper',
},
password: 'password1234',
primaryEmail: '[email protected]'
fields: "kind,nextPageToken,users(id,kind,name,orgUnitPath,primaryEmail)"
};
user_provisioning.insert(new_user, function(err, body) {
console.log("Received response: " + body);
});
Note: it is recommended to use Google's fields editor to construct queries with fields
arguments.
new_user = {
name: {
givenName: 'Grace',
familyName: 'Hopper',
},
password: 'password1234',
primaryEmail: '[email protected]'
};
query = user_provisioning.insert(new_usery);
query.exec(function(err, body){
// Handle error and body
});
Note that findOrCreate
uses async.memoize
. This can cause problems with tests that expect a fresh state at the beginning of each test. You can use async.unmemoize
to reset state.
OrgUnitProvisioning.insert(customer_id, properties[, fields, callback])
Creates an OrgUnit. Accepts arguments:
customer_id
: your Google customer id.properties
: an object that specifies the name of the OrgUnit to create. Uses the form{ name: 'X', parent: 'Y' }
. Note that the parent must already exist; to deep create an OrgUnit, useOrgUnitProvisioning.findOrCreate
.fields
(optional): fields to return in the response.callback
(optional): function of the formcallback(error, body)
to call when the response is received.
OrgUnitProvisioning.list(customer_id, params, [, callback])
Lists OrgUnits owned by a customer. Accepts arguments:
customer_id
: your Google customer id.params
(optional): object containing querystring arguments.callback
(optional): function of the formcallback(error, body)
to call when the response is received.
OrgUnitProvisioning.get(customer_id, org_unit_path, [, callback])
Gets a single OrgUnit owned by a customer. Accepts arguments:
customer_id
: your Google customer id.org_unit_path
: String representation of the OrgUnit to find.callback
(optional): function of the formcallback(error, body)
to call when the response is received.
OrgUnitProvisioning.patch(customer_id, org_unit_path[, body, fields, callback])
Updates an OrgUnit using patch semantics. Accepts arguments:
customer_id
: your Google customer id.org_unit_path
: the full OrgUnit path to update.body
(optional): object containing the fields to update on the OrgUnit and their new values.fields
(optional): fields to return in the response.callback
(optional): function of the formcallback(error, body)
to call when the response is received.
OrgUnitProvisioning.delete(customer_id, org_unit_path, [, callback])
Deletes an OrgUnit. Accepts arguments:
customer_id
: your Google customer id.org_unit_path
: String representation of the OrgUnit to delete.callback
(optional): function of the formcallback(error, body)
to call when the response is received.
UserProvisioning.get(userkey[, callback])
Gets information for a single user. Accepts arguments:
userkey
: the unique userkey of the user to find.callback
(optional): function of the formcallback(error, body)
to call when the response is received.
UserProvisioning.list(params[, callback])
Lists Google Apps users. Accepts arguments:
params
: user fields to query bycallback
(optional): function of the formcallback(error, body)
to call when the response is received.
Example
// Get at most 200 users in the domain `example.com`
params = {
domain: 'example.com',
max_results: 200
};
user_provisioning.list(params, function(err, body) {
// Handle error and do something with users
});
UserProvisioning.patch(userkey, body[, fields, callback])
Updates a user using patch semantics. Accepts arguments:
userkey
: the unique userkey of the user to update.body
: object containing fields to update on the user and their new values.fields
(optional): fields to return in the response.callback
(optional): function of the formcallback(error, body)
to call when the response is received.
UserProvisioning.update(userkey, body[, fields, callback])
Same as patch
, but updates a user without using patch semantics.
UserProvisioning.delete(userkey[, callback])
Deletes a user. Accepts arguments:
userkey
: the unique userkey of the user to delete.callback
(optional): function of the formcallback(error, body)
to call when the response is received.
Example
queries = [];
user1_properties = {
name: { familyName: 'Parr', givenName: 'Bob' },
password: 'password12345',
primaryEmail: '[email protected]'
};
user2_properties = {
name: { familyName: 'Huph', givenName: 'Gilbert' },
password: 'password12345',
primaryEmail: '[email protected]'
};
queries.push(UserProvisioning.insert(user1_properties));
queries.push(UserProvisioning.insert(user2_properties));
Batch.go(queries, function(error, results){
// Handle error and parse results
});