У меня есть права администратора в организации Google Workspace, и я хочу пригласить внешнего пользователя (@gmail.com) в качестве учащегося на уроке в Классе, используя Classroom API внутри скрипта Google Apps.
В настоящее время я использую этот код, чтобы пригласить любого пользователя:
Classroom.Invitations.create({
"userId": email,
"courseId": courseId,
"role": "STUDENT"
});
Это работает нормально, если электронная почта принадлежит домену моей организации, но если я попробую тот же код с учетной записью @gmail.com, скрипт вернет:
GoogleJsonResponseException: вызов API class.invitations.create завершился с ошибкой: у вызывающего абонента нет разрешения
Я могу добавить его вручную в Google Classroom, но через Apps Script это не работает. Возможно, стоит упомянуть, что учетная запись владельца Класса — это не моя учетная запись, а другая в моем домене, а сценарий, который я использую, находится на общем диске.
РЕШЕНО (спасибо Saddles): Чтобы это работало, учетная запись администратора, пытающаяся пригласить студентов, должна быть зарегистрирована в качестве преподавателя на курсе.
Можете ли вы подтвердить admin permissions in an Google Workspace organization учетную запись, которую вы сейчас используете? Насколько я знаю, Super Admin или verified teacher added as a co-teacher должны иметь возможность добавлять потребительскую учетную запись Google в Google Classroom.
Это предполагает, что для параметра Who can join classes in your domain? консоли администратора установлено значение Any user из-за утверждения I do can add it manually inside Google Classroom, but it doesn't work via Apps Script.. Вы можете перепроверить это, прочитав статью справочного центра в ветке комментария @James.
Да, я подтверждаю, что вопрос «Кто может присоединяться к занятиям в вашем домене?» для параметра установлено значение «Любой пользователь», а я — «Суперадминистратор».
Понял. Ошибка только предполагает, что причиной этого является проблема с разрешением. Можете ли вы попробовать добавить этого пользователя в список учителей Google Classroom и посмотреть, что произойдет? Вы также можете Просматривать страницы в режиме инкогнито, поскольку бывают случаи, когда учетные записи переключаются после перехода на другую страницу, что приводит к подобным проблемам.
Хорошо, я попробовал добавить учетную запись суперадминистратора в качестве учителя, и это волшебным образом сработало! Понятия не имею, почему учитель должен добавлять внешних студентов, а не внутренних студентов. В любом случае, спасибо за вашу помощь!
Позвольте мне перефразировать мои комментарии, чтобы они стали ответом на этот вопрос, поскольку вы об этом упомянули it magically worked. Таким образом, другие участники сообщества, которые наткнутся на этот пост, смогут узнать эту информацию. Не стесняйтесь принять ответ и проголосовать за него.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


После некоторого тестирования в учетной записи Google Workspace, чтобы добавить пользователя @gmail.com в класс с помощью скрипта Google Apps, убедитесь, что для параметра Who can join classes in your domain? в консоли администратора установлено значение Any user.
Затем добавьте Super Admin в качестве co-teacher в Google Classroom, так как в противном случае появится ошибка GoogleJsonResponseException: API call to classroom.invitations.create failed with error: The caller does not have permission.