aravindnass Ответов: 1

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


Привет,

Я могу читать/изменять gmails из моей собственной учетной записи Gmail через Gmail API, используя его учетные данные
using Google.Apis.Auth.OAuth2;
using Google.Apis.Gmail.v1;


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

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

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

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

Что я уже пробовал:

Я могу получить доступ, прочитать свою собственную почту с помощью Gmail API -

private static string[] Scopes = { GmailService.Scope.GmailModify };
private UserCredential _credential;
private string 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

Member 14765588

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...
				}

Код, упомянутый выше, не может прочитать полное сообщение электронной почты. Он предоставляет только метку, сниппет(небольшую часть предварительного сообщения).