Как я могу использовать API Google для получения пользовательских ролей для пользователя в группе Google? - PullRequest
0 голосов
/ 03 января 2019

Я заметил, что в пользовательском интерфейсе конфигурации "Роли" в группе Google можно добавить пользовательскую роль, нажав кнопку [CREATE]. Затем я могу назначить эту пользовательскую роль членам группы Google.

Однако, когда я использую API для извлечения членов группы, он показывает только одну из трех встроенных ролей (OWNER, MEMBER и MANAGER), а не пользовательские роли. Можно ли выполнить вызов API для получения пользовательских ролей для члена группы Google?

Вот выдержка из кода, который я использую в nodeJs. Обратите внимание, что я использую v1 каталога API:

async function getGroupMembers(auth) {
    try {
        const admin = await google.admin({ version: 'directory_v1', auth });
        admin.members.list({groupKey}, (err, payload) => {
            if (err) {
                console.log('The list users API returned an error: ', err);
                resolve({ groups: [], users: [] });
            }
            const data = payload.data;
            const groups = [];
            const users = [];
            for (const member of data.members) {
                console.log(member);
                if (member.type === 'USER') users.push(member.email);
                else if (member.type === 'GROUP') groups.push(member.email);
            }
            resolve({groups, users});
        });
    } catch(error) {
        console.log("Error getting group members: ", error);
        resolve({ groups: [], users: [] });
   }
}

Вот пример того, что я вижу, когда я console.log переменная-член:

{ kind: 'admin#directory#member',
  etag: '"xxxxxxxxxxxxxxx"',
  id: 'xxxxxxxxxxxxxx',
  email: 'noreply@somedomain.com',
  role: 'OWNER',
  type: 'USER',
  status: 'ACTIVE' }

Но я надеюсь, что смогу увидеть что-то вроде этого:

{ kind: 'admin#directory#member',
  etag: '"xxxxxxxxxxxxxxx"',
  id: 'xxxxxxxxxxxxxx',
  email: 'noreply@somedomain.com',
  role: ['OWNER', 'MYCUSTOMROLE'],
  type: 'USER',
  status: 'ACTIVE' }
...