Udało mi się dotychczas hakować pakiety googleapis
i gapitoken
, aby tworzyć wydarzenia w Kalendarzu Google za pośrednictwem interfejsu API. Chodziło o to, aby znaleźć sposób na programowe generowanie linku do Google Hangout, którego nie można zrobić za pomocą interfejsu API, o ile wiem. Zgodnie z this post, masz możliwość włączenia automatycznego tworzenia linków do Hangoutów podczas tworzenia wydarzeń, które zrobiłem dla konta.Tworzenie zdarzeń Kalendarza Google przy użyciu interfejsu API nie powoduje utworzenia linku do Hangouta
Kod, którego używam, będzie uruchamiany tylko z Node.js, więc nie ma żadnej części skierowanej do użytkownika. Używam techniki konta usługi do uwierzytelniania za pośrednictwem protokołu OAuth2.0. Wszystko wydaje się działać dobrze, z wyjątkiem zdarzenia, które zostało utworzone, nie zawiera właściwości o nazwie "hangoutLink". Jakieś pomysły?
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);
});
});
});
});
Obecnie robię coś podobnego, używając przestarzałego interfejsu API, który pozwala używać tokenów. Zobacz tutaj, co aktualnie działa: https://gist.github.com/eliperelman/b0201cbea1556ed1fe2e Zauważ, że wprowadziłem pewne modyfikacje do modułu podstawowego, aby umożliwić mi przekazanie kilku dodatkowych parametrów. – Eli
Ah, tak. To są zwykłe tokeny użytkownika od użytkownika, który ma włączone automatyczne tworzenie hangoutów? Mogę skończyć robiąc coś podobnego. Przepływ oauth najwyraźniej nie jest tak dobry dla usługi, która powinna działać bez interwencji użytkownika, więc przydałaby się umiejętność twardego kodowania poświadczeń użytkowników do generowania tokenów. Dam ci ten strzał. Ostatecznie oba podejścia wydają się dość kruche i Google może je złamać w dowolnym momencie. Frustrujące, że nie mają na to wstępnego sposobu. – drewww
Mam aspiracje, aby to działało w sposób zautomatyzowany bez ClientLogin, ale nie widzę w tym momencie ścieżki. Nie wydaje się to możliwe bez interwencji człowieka/przeglądarki na pewnym poziomie. Tak bardzo, jak mnie to boli, myślę, że muszę również przejść na trasę ClientLogin. Czy chcesz podzielić się zmianami wprowadzonymi w ClientLogin? Lub po prostu wskazać mi właściwy kierunek regulacji? – drewww