Я хочу вставить письмо в почтовый ящик группы. Я включил делегирование домена. Я могу вставлять электронную почту в почтовый ящик любого пользователя (мне просто нужно изменить адрес электронной почты в 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