Как вставить сообщение в группу Gmail - PullRequest
0 голосов
/ 10 июля 2020

Я хочу вставить письмо в почтовый ящик группы. Я включил делегирование домена. Я могу вставлять электронную почту в почтовый ящик любого пользователя (мне просто нужно изменить адрес электронной почты в CreateWithUser при создании учетных данных). Но я не могу заставить его работать для групп.

var Scopes = new[] {
    "https://mail.google.com",
    "https://www.googleapis.com/auth/gmail.compose",
    "https://www.googleapis.com/auth/gmail.modify",
    "https://www.googleapis.com/auth/gmail.readonly"
};

var serviceAccount = Convert.FromBase64String("base64ServiceAccount");

var serviceAccountCredential =
        ServiceAccountCredential.FromServiceAccountData(new MemoryStream(serviceAccount));

var googleCredential =
    GoogleCredential
        .FromServiceAccountCredential(serviceAccountCredential);

var scopedCredentials =
    (ServiceAccountCredential)googleCredential
        .CreateScoped(Scopes)
        .CreateWithUser("user@domain.com")
        .UnderlyingCredential;

var service = new GmailService(new BaseClientService.Initializer()
{
    HttpClientInitializer = scopedCredentials,
    ApplicationName = "App Name",
});

var message = new Message { Raw = ... };

var request = service.Users.Messages.Insert(message, "user@domain.com").Execute();

Когда я создаю учетные данные как CreateWithUser("user@domain.com"), запрос Messages.Insert("group@domain.com") не выполняется на Delegation denied for user@domain.com. Когда я создаю учетные данные как CreateWithUser("group@domain.com"), я получаю Client is unauthorized to retrieve access tokens using this method.

user@domain.com является владельцем group@domain.com

...