Je reçois l'erreur suivante lorsque j'ai essayé d'autoriser l'API Gmail à l'aide du compte de service
"Le client n'est pas autorisé à récupérer les jetons d'accès à l'aide de cette méthode"
static async Task MainAsync()
{
sstageEntities db = new sstageEntities();
//UserCredential credential;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
String serviceAccountEmail =
"xxx.iam.gserviceaccount.com";
var certificate = new X509Certificate2(
AppDomain.CurrentDomain.BaseDirectory +
"xxx-8c7a4169631a.p12",
"notasecret",
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);
//string userEmail = "[email protected]";
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
User = "[email protected]",
Scopes = new[] { "https://mail.google.com/" }
}.FromCertificate(certificate)
);
// Create Gmail API service.
var gmailService = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
// Define parameters of request.
var emailListRequest = gmailService.Users.Messages.List("[email protected]");
emailListRequest.LabelIds = "INBOX";
emailListRequest.IncludeSpamTrash = true;
emailListRequest.Q = "from:[email protected] is:unread";
//Get our emails
var emailListResponse = await emailListRequest.ExecuteAsync();
J'utilise la clé p12 que j'ai obtenue lors de la création du compte de service.Mais lorsque j'exécute mon application console, l'erreur suivante se produit.Toute aide serait vraiment appréciée.
Merci d'avance !
Le compte de service doit être autorisé ou il ne peut pas accéder aux e-mails du domaine.
"Le client n'est pas autorisé à récupérer les jetons d'accès à l'aide de cette méthode"
Signifie que vous ne l'avez pas autorisé correctement vérifier Délégation d'autorité à l'échelle du domaine au compte de service