0
所以我有這個代碼,只有當我用我的谷歌帳戶登錄時它才能正常工作。當我沒有登錄時,我必須登錄才能繼續創建事件功能。有什麼辦法可以讓任何人都可以將活動添加到我的公共日曆中嗎?我搜索了很多地方,但我似乎無法找到任何答案。 :P如何使某個網站能夠使用gapi編輯公共Google日曆?
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();
});
}
注意到一些代碼被遺漏了。但一切工作正常。
此外,服務帳戶需要具有對此日曆的寫入權限。這意味着需要更改目標日曆的ACL以包含服務帳戶的電子郵件地址。如果目標日曆是域擁有的,則可能會出現一些複雜情況,因爲可能會應用域最大ACL。在這種情況下,可能需要在全域範圍內授權。 – luc
所以我想你可以用node.js實現這一點,但有沒有什麼辦法可以讓我用javascript來完成這個任務? – jake