GMail API Super Admin доступ к учетным записям других пользователей через API?

В моем учебном заведении Google Apps for Education в настоящее время работает с начала 2009 года. Я отвечаю за создание, удаление, изменение и т. Д. Учетных записей электронной почты учащихся. Я преобразовал все свои существующие приложения C # из GData в новый Admin SDK - жизнь хороша.

На прошлой неделе одно из департаментов разослало электронное письмо примерно 800 студентам с ошибкой. Меня спросили, возможно ли создать быстрое приложение, способное удалить электронную почту для 800 ящиков входящих сообщений.

Используя мою учетную запись домена «Super Admin», я смог создать приложение с помощью API Gmail, чтобы войти в свою папку «Входящие» и выбрать определенные электронные письма, которые соответствуют определенным критериям; пример:from:[email protected] AND is:unread AND subject:test Мне удалось вернуть коллекцию идентификаторов сообщений, которые затем я могу удалить из почтового ящика - ОТЛИЧНО!

Так как я смог сделать это на своем почтовом ящике, я решил провести еще один тест, подключить один из этих 800 адресов электронной почты и получить тот же результат. К сожалению, я получил это сообщение об ошибке:

Ошибка: Google.Apis.Requests.RequestError Делегирование отклонено для [email protected] [403] Ошибки [Сообщение [Делегирование отклонено для [email protected]] Местоположение [-] Причина [запрещен] Домен [глобальный]]

Я прочитал кое-что о делегировании учетной записи, но для этого потребовалось бы отправить запрос с моей учетной записи «Super Admin», а учащийся принял его.

Может ли быть так, что «Супер Администратор» домена не имеет этих разрешений ни в одной папке входящих сообщений, кроме своих собственных? Я пытался читать сообщения и документацию Google, но не могу найти ответ на эту тему.

Gmail API включен в консоли разработчика для этого настольного приложения.

Учетная запись службы, которую я использую, авторизована, и в приложении C # используются правильные области:

Scopes = new[] { 
                        "https://mail.google.com",
                    GmailService.Scope.GmailCompose,
                    GmailService.Scope.GmailInsert,
                    GmailService.Scope.GmailLabels,
                    GmailService.Scope.GmailModify,
                    GmailService.Scope.GmailReadonly,
                    GmailService.Scope.MailGoogleCom,
                    "https://www.googleapis.com/auth/userinfo.email",
                    "https://www.googleapis.com/auth/userinfo.profile"},

Мой код C #:

List<Google.Apis.Gmail.v1.Data.Message> result = new List<Google.Apis.Gmail.v1.Data.Message>();

UsersResource.MessagesResource.ListRequest request = GoogleToken.GoogleService().Users.Messages.List("[email protected]");

request.Q = " from:[email protected] AND is:unread AND subject:test ";

            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();
                    result.AddRange(response.Messages);
                    request.PageToken = response.NextPageToken;
                }
                catch (Exception eX)
                {
                    Debug.WriteLine("Error: " + eX.Message);
                }
            }
            while (!String.IsNullOrEmpty(request.PageToken));

            Debug.WriteLine("Done");
            Debug.WriteLine(result);
        }

Ответы на вопрос(2)

Ваш ответ на вопрос