GMail API Super Admin Zugriff auf Konten anderer Benutzer über API?

ie Einrichtung in @My führt derzeit seit Anfang 2009 Google Apps for Education aus. Ich bin für das Erstellen, Löschen, Ändern usw. von E-Mail-Konten für Schüler verantwortlich. Ich habe alle meine vorhandenen C # -Anwendungen von GData auf das neue Admin-SDK konvertiert - das Leben ist gut.

n der letzten Woche sandte eine der Abteilungen eine E-Mail an ungefähr 800 Studenten, die einen Fehler enthielten. Ich wurde gefragt, ob es möglich ist, eine Schnellanwendung zu erstellen, mit der die E-Mail für den Posteingang von 800 Schülern entfernt werden kann.

Mit meinem "Super Admin" -Domänenkonto konnte ich mithilfe der Google Mail-API eine Anwendung erstellen, um in meinen Posteingang zu gelangen und bestimmte E-Mails auszuwählen, die bestimmten Kriterien entsprechen. Beispiel:from:[email protected] AND is:unread AND subject:test Ich konnte eine Sammlung von Nachrichten-IDs zurückgeben, die ich dann aus dem Posteingang löschen kann - GROSSARTIG!

Da ich dies in meinem Posteingang tun konnte, habe ich mir vorgenommen, einen weiteren Test durchzuführen und eine dieser 800 E-Mail-Adressen einzugeben, um das gleiche Ergebnis zu erhalten. Leider habe ich diese Fehlermeldung erhalten:

Error: Google.Apis.Requests.RequestError Delegierung verweigert für [email protected] [403] Fehler [Nachricht [Delegierung verweigert für [email protected]] Speicherort [-] Grund [verboten] Domain [global]]

Ich habe etwas über die Kontodelegation gelesen, aber dafür müsste eine Anfrage von meinem "Super Admin" -Konto gesendet werden und der Schüler muss diese akzeptieren.

Kann es sein, dass der "Super-Administrator" der Domain diese Berechtigungen nur für seinen eigenen Posteingang hat? Ich habe versucht, Beiträge und die Dokumentation von Google zu lesen, kann jedoch keine Antwort zu diesem Thema finden.

Die Google Mail-API ist in der Entwicklerkonsole für diese Desktopanwendung aktiviert.

Das von mir verwendete Dienstkonto ist autorisiert und verwendet in der C # -Anwendung die richtigen Bereiche:

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"},

Mein C # -Code:

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);
        }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage