В API каталогов Google, как мне добавить пользователя с помощью JavaScript?
У меня работает быстрый запуск Javascript API каталогов Google. В этой части кода перечислены первые 10 пользователей в каталоге:
gapi.client.directory.users.list({
'customer': 'my_customer',
'maxResults': 10,
'orderBy': 'email'
}).then(function(response) {
var users = response.result.users;
appendPre('Users:');
appendPre('test')
if (users && users.length > 0) {
for (i = 0; i < users.length; i++) {
var user = users[i];
appendPre('-' + user.primaryEmail + ' (' + user.name.fullName + ')');
}
} else {
appendPre('No users found.');
}
});
Я хочу добавить пользователя в каталог. Похоже, это делается с помощью пользователей: вставить. Поэтому после удаления части "только для чтения" из области действия я заменяю приведенный выше фрагмент кода следующим:
var user = {
"password": "Testpass123",
"primaryEmail": "albert.smith@mydomain.com",
"name": {
"givenName": "albert",
"familyName": "smith"
}
};
gapi.client.directory.users.insert(user);
Очевидно, что это не работает, но я не уверен, что мне не хватает. На пользователях есть инструмент "Попробуйте этот API": вставьте справочную страницу, и когда я добавляю свойства "user" в поле "тело запроса", он добавляет пользователя.
Я не уверен, как сделать тело запроса, хотя, и я не могу найти решение в документации. Метод users: list не нуждается в теле запроса. Я попробовал что-то вроде этого, что тоже не сработало:
gapi.client.request({
'path': 'https://www.googleapis.com/admin/directory/v1/users',
'method': 'POST',
'body': user
});
Надеясь, что кто-то может дать мне хотя бы общее представление о том, что делать. Я довольно новичок в этом.
3 ответа
Попробуйте обернуть пользовательский объект в объект ресурса, например:
var user = {
resource: {
"password": "Testpass123",
"primaryEmail": "albert.smith@mydomain.com",
"name": {
"givenName": "albert",
"familyName": "smith"
}
}
}
Я не могу найти ссылку на это больше, поэтому, может быть, кто-то еще может опубликовать, но это работает для меня.
Попробуйте эти фиктивные данные, полученные из Admin SDK Apps Script Add user и замените их правильными данными:
тело запроса образца:
var user = {
primaryEmail: 'liz@example.com',
name: {
givenName: 'Elizabeth',
familyName: 'Smith'
},
// Generate a random password string.
password: Math.random().toString(36)
};
На основе https://developers.google.com/admin-sdk/directory/reference/rest/v1/users/insert :
function execute() {
return gapi.client.directory.users.insert({
"resource": {
"name": {
"familyName": "Shmoger",
"givenName": "Joey"
},
"password": "ShmoeyJoey!",
"primaryEmail": "shmogerjoe@grower.com"
}
})
.then(function(response) {
// Handle the results here (response.result has the parsed body).
console.log("Response", response);
},
function(err) { console.error("Execute error", err); });
}