Gmail API для доступа, чтения / изменения делегированных сообщений электронной почты или общего доступа к Gmail с использованием C # - PullRequest
0 голосов
/ 01 мая 2019

Я могу читать / изменять gmail из своей учетной записи Gmail через Gmail API, используя его учетные данные.

using Google.Apis.Auth.OAuth2;
using Google.Apis.Gmail.v1;

Но теперь ИТ-служба предоставляет мне общую учетную запись Gmail или делегированную учетную запись Gmail. Поэтому я хочу получить доступ, прочитать / изменить письмо этого делегата .

Как я могу получить доступ и прочитать делегированный gmail с помощью Gmail API? Есть ли пример?

Большая часть кода на сайтах API Gmail написана на Python и Java, чего я не понимаю.

Пожалуйста, пролите немного света.

Что я пробовал:

Я могу получить доступ, читать свою почту, используя Gmail API -

private static string[] Scopes = { GmailService.Scope.GmailModify };

private UserCredential _credential; приватная строка credPath = "token.json";

 public UserCredential GetCredential()
 {
 using (var stream =
  new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
     {
         _credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
             GoogleClientSecrets.Load(stream).Secrets,
             Scopes,
             "user",
             CancellationToken.None,
             new FileDataStore(credPath, true)).Result;
     }

     return _credential;
 }

GmailCredentials Info = new GmailCredentials();
      private static string ApplicationName = "xxxxx";

        var service = new GmailService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = GetCredential(),
                ApplicationName = ApplicationName,
            });

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List("me");
            request.Q = ConfigurationManager.AppSettings["filter"];
            request.MaxResults = Convert.ToInt64(ConfigurationManager.AppSettings["maxCount"]);  //5;
            messages = request.Execute().Messages;
            List<string> lstRemove = new List<string>() { "UNREAD" };

            /// Read the individual message and output as List<Email>
            for (int index = 0; index < messages.Count; index++)
            {
            //... Do the code...
            }

1 Ответ

0 голосов
/ 02 мая 2019

Gmail API не работает с делегированными почтовыми ящиками.Доступен только собственный почтовый ящик пользователя.Чтобы получить доступ ко всей почте пользователя в домене G Suite, попробуйте использовать служебную учетную запись и делегирование всего домена .

...