Ich war bisher erfolgreich beim Hacken der Pakete googleapis
und gapitoken
, um Ereignisse in einem Google Kalender über die API zu erstellen. Der Sinn von all dem war, einen Weg zu finden, um programmatisch einen Google Hangout-Link zu generieren, den Sie, soweit ich weiß, nicht über API machen können. Laut this post sollen Sie die automatische Erstellung von Hangout-Links aktivieren können, wenn Sie Ereignisse erstellen, die ich für das Konto ausgeführt habe.Erstellen von Google Kalenderereignissen mithilfe der API erstellt keinen Hangout-Link
Der Code, den ich verwende, wird nur von Node.js ausgeführt, also gibt es keinen Benutzer zugewandten Teil. Ich verwende das Service Account-Verfahren zur Authentifizierung über OAuth2.0. Alles scheint gut zu funktionieren, außer dass das erstellte Ereignis keine Eigenschaft namens "HangoutLink" enthält. Irgendwelche Ideen?
var moment = require('moment');
var googleapis = require('googleapis');
var GoogleToken = require('gapitoken');
var OAuth2Client = googleapis.OAuth2Client;
var token = new GoogleToken({
iss: '*******************@developer.gserviceaccount.com',
scope: 'https://www.googleapis.com/auth/calendar',
keyFile: './*****************.pem'
}, function (err) {
if (err) {
return console.log(err);
}
token.getToken(function (err, token) {
if (err) {
return console.log(err);
}
googleapis.load('calendar', 'v3', function (err, client) {
var oauthClient = new OAuth2Client('', '', '', {}, {
token_type: 'Bearer',
access_token: token
});
var now = moment().format();
client
.calendar
.events
.insert({
calendarId: 'primary',
resource: {
summary: 'hangout',
description: 'hangout',
reminders: {
overrides: {
method: 'popup',
minutes: 0
}
},
start: {
dateTime: now
},
end: {
dateTime: now
},
attendees: [{
email: '****@**********.com'
}]
}
})
.withAuthClient(oauthClient)
.execute(function (err, event) {
// event does not contain hangoutLink
console.log(event.hangoutLink);
});
});
});
});
Ich mache derzeit etwas ähnliches, indem ich die veraltete API benutze, die es erlaubt, Token zu verwenden. Sehen Sie hier, was gerade funktioniert: https://gist.github.com/eliperelman/b0201cbea1556ed1fe2e Beachten Sie, dass ich einige Änderungen am zugrunde liegenden Modul vorgenommen habe, damit ich einige zusätzliche Parameter übergeben kann. – Eli
Ah, ja. Das sind normale Benutzer-Tokens von einem Benutzer, bei dem der automatische Erstellungs-Hangout aktiviert ist? Ich könnte am Ende etwas ähnliches tun. Der oauth-Fluss ist offensichtlich nicht so gut für einen Dienst, der ohne Benutzereingriff ausgeführt werden sollte, so dass es praktisch wäre, die Anmeldeinformationen der Benutzer fest zu codieren, um Token zu generieren. Ich werde diesen Schuss geben. Letztendlich scheinen diese beiden Ansätze ziemlich zerbrechlich zu sein und Google könnte sie jederzeit brechen. Frustrierend, dass ich dazu keinen Vorweg nehme. – drewww
Ich hatte die Bestrebungen, dies ohne ClientLogin automatisiert zu machen, aber ich sehe an dieser Stelle keinen Weg. Es scheint nicht möglich, ohne Mensch/Browser-Intervention auf irgendeiner Ebene. So sehr es mich schmerzt, denke ich, dass ich auch auf die ClientLogin-Route gehen muss. Haben Sie etwas dagegen, die Änderungen an ClientLogin zu teilen? Oder zeigen Sie mir einfach die richtigen Einstellungen? – drewww