Ich habe ein Formular auf einer Website, die meinen Kalender überprüfen muss, um zu sehen, welche Zeiten verfügbar sind, und später, wenn es gesendet wird, wird es eine E-Mail senden.Wie verwende ich Google APIs als spezifische Benutzerserverseite? Node.js
Ich habe ein Dienstkonto in der API-Konsole erstellt, aber ich habe keine Ahnung, wie ich ihm Zugriff auf mein Konto gewähren kann.
Hier ist, was ich bisher habe, versuchen, Etiketten meines Google Mail-Kontos als Test aufzulisten.
var google = require('googleapis');
var gmail = google.gmail('v1');
var key = require('../client_secret.json');
var authClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
['https://mail.google.com/'],
'****@gmail.com');
authClient.authorize(function (err, tokens) {
if (err) {
return console.log(err);
}
gmail.users.labels.list({
auth: authClient,
userId: '****@gmail.com'
}, function (err, resp) {
if (err) {
return console.log(err);
}
console.log(resp);
});
});
Und wenn ich das Skript ausführen, erhalte ich:
[Error: unauthorized_client]
Edit:
Ich habe auch einen anderen Authentifizierungsablauf mit oauth versucht, wo es Sie zu den typischen Erlaubnis Bildschirm rufen zu fragen Sie erlauben Zugriff für "Projektname" zu "welchen Bereichen Sie auch setzen". Dann kann ich das Zugriffstoken verwenden, um Anfragen zu stellen und alles ist gut ... aber das fühlt sich nicht richtig an, weil ich niemals möchte, dass ein anderer Benutzer autorisiert wird. Ich könnte eine Route verwenden, um die "App" einmal zu autorisieren und dann diese Seite zu deaktivieren, damit sie nicht wieder aufgerufen werden kann ... Es fühlt sich irgendwie hack-y an.