[英]Javascript Google Calendar API Set Calendar to Public
我正在使用谷歌日历的API来显示我公司日历的精简版。 我想让任何人在我的网站上查看我的日历版本。 目前,只有我可以查看日历页面,如果我要与任何人共享页面URL,它不起作用 - 他们无法查看任何内容。
我在这里使用谷歌的起始代码:
var CLIENT_ID = 'MYID**';
var SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"];
function checkAuth() {
gapi.auth.authorize(
{
'client_id': CLIENT_ID,
'scope': SCOPES,
'immediate': true
}, handleAuthResult);
}
function handleAuthResult(authResult) {
var authorizeDiv = document.getElementById('authorize-div');
loadCalendarApi();
}
function handleAuthClick(event) {
gapi.auth.authorize({
client_id: CLIENT_ID,
scope: SCOPES,
immediate: false
}, handleAuthResult);
return false;
}
function loadCalendarApi() {
gapi.client.load('calendar', 'v3', listUpcomingEvents);
}
function listUpcomingEvents() {
var request = gapi.client.calendar.events.list({
'calendarId': 'iorbmkj57ee8ihnko0va1snif8@group.calendar.google.com',
'timeMin': '2011-06-03T10:00:00-07:00',
'showDeleted': false,
'singleEvents': true,
'maxResults': 1000,
'orderBy': 'startTime'
});
但我似乎无法找到将这个日历公之于众的地方。 stackoverflow上的两个示例没有解释太多,我似乎无法连接Google的API文档中的任何内容。
如果您只想共享日历,可以将其公开,然后将日历分享给每个人。 这是怎么回事。
要公开您的日历,您可以按照此网站的步骤https://support.google.com/calendar/answer/37083?hl=en 。
公开您的日历
在计算机上,打开Google日历。
点击右上角的设置设置齿轮按钮>设置。
打开“日历”选项卡。
单击要共享的日历的名称。
打开“共享此日历”选项卡。
选中将此日历设为公开选项。
如果不希望其他人查看您的活动详情,请选择仅查看忙/闲(隐藏详细信息)。
单击保存。
然后,您可以在日历选项中与iframe共享日历。 https://support.google.com/calendar/answer/41207?hl=en
在您的网站上嵌入日历
在计算机上,打开Google日历。 您只能从计算机而不是移动应用程序中获取嵌入您网站的代码。
点击右上角的设置设置齿轮按钮>设置。
打开“日历”选项卡。
单击要嵌入的日历的名称。
在“嵌入此日历”部分中,复制显示的iframe代码。
打开网站编辑器,然后将此代码粘贴到要显示日历的位置。
您不需要像示例那样启动OAuth 2.0授权过程(已弃用)。 实际上,您可以使用浏览器API密钥和日历ID加载日历:
function checkAuth() {
//gapi.auth.authorize(
// {
// 'client_id': CLIENT_ID,
// 'scope': SCOPES.join(' '),
// 'immediate': true
// }, handleAuthResult);
gapi.client.setApiKey('browser API key');
handleAuthResult({ error: false });
}
function listUpcomingEvents() {
var request = gapi.client.calendar.events.list({
'calendarId': 'your calendar id',
'timeMin': (new Date()).toISOString(),
'showDeleted': false,
'singleEvents': true,
'maxResults': 10,
'orderBy': 'startTime'
});
request.execute(function(resp) {
var events = resp.items;
appendPre('Upcoming events:');
if (events.length > 0) {
for (i = 0; i < events.length; i++) {
var event = events[i];
var when = event.start.dateTime;
if (!when) {
when = event.start.date;
}
appendPre(event.summary + ' (' + when + ')')
}
} else {
appendPre('No upcoming events found.');
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.