Client ist nicht zum abrufen von access-tokens mit dieser Methode Gmail-API-C#
Ich erhalte die folgende Fehlermeldung, wenn ich versuchte, Sie zu ermächtigen, gmail api mit service-Konto
"Client ist nicht zum abrufen von access-tokens mit dieser Methode"
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();
Ich bin mit dem p12-Schlüssel, die ich habe, während service-Konto erstellen.Aber wenn ich meine Konsole-app der folgende Fehler tritt auf.Jede Hilfe wäre wirklich zu schätzen.
Vielen Dank im Voraus !
Wussten Sie, fügen Sie das Dienstkonto, um die gsuite? developers.google.com/identity/protocols/...
Damit nur der admin der Organisation tun können ? ich bin nur ein Angestellter ?
Ja, ich würde denken, das ist etwas, das nur der admin für dich tun kann.
Hey DamlmTo ja der admin hat Zugriff nun seine alle gelöst, vielen Dank
Damit nur der admin der Organisation tun können ? ich bin nur ein Angestellter ?
Ja, ich würde denken, das ist etwas, das nur der admin für dich tun kann.
Hey DamlmTo ja der admin hat Zugriff nun seine alle gelöst, vielen Dank
InformationsquelleAutor Melvin | 2017-03-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem service-Konto dazu berechtigt sein muss oder es keinen Zugriff auf die E-Mails für die Domäne.
Bedeutet, dass Sie nicht autorisiert haben es richtig prüfen Delegieren domain-große Vollmachten auf dem service-Konto
Service-Konten funktionieren nur mit GSuite, weil Sie müssen in der Lage sein zu preauthorize die service-Konto und gewähren Sie Ihr den Zugriff auf das Benutzer-Konto. Es gibt keine Möglichkeit zu preauthorize ein normal-user Gmail-Konto. Also keine kippe Sie über ein service-Konto mit einem normalen Benutzer Google Mail-Konto.
Vielen Dank für die Klarstellung DalmTo.
Ich bekomme den gleichen Fehler, ich setzt die korrekte Autorisierung in G-Suite für das service-Konto für den Zugriff auf Platten durch " googleapis.com/auth/spreadsheets" aber ich bekomme immer noch den Fehler, irgendwelche Ideen?
Ich fand, dass manchmal "Delegieren domain-große Vollmachten auf dem service-Konto" eine längere Zeit, um wirksam werden. In der Regel ein paar Sekunden, aber es kann länger dauern als 5 Minuten. Warum geschieht dieses? Jeder Vorschlag für dieses problem? Danke.
InformationsquelleAutor DaImTo