Also ich habe diesen Code und es funktioniert nur dann einwandfrei, wenn ich mit meinem Google-Konto angemeldet bin. Wenn ich nicht eingeloggt bin, muss ich mich anmelden, um meine create event Funktion fortzusetzen. Gibt es eine Möglichkeit, es so zu machen, dass jeder meinem öffentlichen Kalender ein Ereignis hinzufügen kann? Ich habe viele Orte durchsucht, aber ich kann keine Antworten finden. : PWie kann eine bestimmte Website in der Lage sein, einen öffentlichen Google-Kalender mit gapi zu bearbeiten?
var CLIENT_ID = 'MY CLIENT_ID GOES HERE';
var SCOPES = ["https://www.googleapis.com/auth/calendar"];
checkAuth();
function checkAuth() {
gapi.auth.authorize(
{
'client_id': CLIENT_ID,
'scope': SCOPES.join(' '),
'immediate': true
}, handleAuthResult);
}
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
console.log(authResult);
loadCalendarApi();
} else {
gapi.auth.authorize(
{client_id: CLIENT_ID, scope: SCOPES, immediate: false},
handleAuthResult);
return false;
}
}
function loadCalendarApi() {
gapi.client.load('calendar', 'v3', createEvent);
}
function createEvent(){
var resource = {
"summary": eventName,
"location": location,
"description": rid,
"start": {
"dateTime": startNew
},
"end": {
"dateTime": endNew
},
};
var request = gapi.client.calendar.events.insert({
'calendarId': 'MY CALENDAR ID GOES [email protected]',
'resource': resource
});
request.execute(function(resp) {
console.log(resp);
callback();
});
}
Beachten Sie einige der Codes, die weggelassen wurden. Aber alles funktioniert einwandfrei.
Auch das Dienstkonto muss Schreibzugriff auf diesen Kalender haben. Das bedeutet, dass die ACLs des Zielkalenders so geändert werden müssen, dass sie die E-Mail-Adresse des Dienstkontos enthalten. Es gibt einige Komplikationen, wenn der Zielkalender domäneneigen ist, da möglicherweise Domänen-ACLs gelten. In diesem Fall kann eine domänenweite Delegation von Befugnissen erforderlich sein. – luc
Also, ich denke du kannst das mit node.js erreichen, aber gibt es eine Möglichkeit, das nur mit Javascript zu erreichen? – jake