我使用谷歌日历的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文档。
答案 0 :(得分:1)
如果您只想分享日历,可以将其公开,然后将日历分享给所有人。这就是。
要公开您的日历,您可以按照本网站https://support.google.com/calendar/answer/37083?hl=en的步骤进行操作。
公开您的日历
在计算机上,打开Google日历。
点击右上角的设置设置齿轮按钮>设置。
打开“日历”标签。
单击要共享的日历的名称。
打开“共享此日历”标签。
选中将此日历设为公开选项。
如果不希望其他人查看您的活动详情,请选择仅查看空闲/忙碌(隐藏详细信息)。
- 醇>
点击保存。
然后您可以在日历选项中与iframe共享日历。 https://support.google.com/calendar/answer/41207?hl=en
在您的网站上嵌入日历
在计算机上,打开Google日历。您只能从计算机而不是移动应用程序中获取嵌入您网站的代码。
点击右上角的设置设置齿轮按钮>设置。
打开“日历”标签。
单击要嵌入的日历的名称。
在“嵌入此日历”部分中,复制显示的iframe代码。
- 醇>
打开网站编辑器,然后将此代码粘贴到您希望显示日历的位置。
答案 1 :(得分:0)
Calendars资源没有任何关于可见性的属性。但是,由于您使用的是Events list,因此其资源具有可见性属性,您可以在其中过滤掉(尽管是手动)公开的项目。
public
ItemTouchHelper
答案 2 :(得分:0)
您不需要像示例那样启动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.');
}
});
}