查找活动的参加者
Find Attendees of an Event
我正在尝试显示“public”google 日历中的事件。我的要求是获得与会者的数量(不一定是与会者的姓名)。但是,当我使用日历 API 获取事件时(使用 API 键和 CalendarID);该活动缺少提到的整个与会者部分 here。
我的问题:我需要进行身份验证吗?这是否意味着这不能是 public,而显示此信息的 web-pages 将需要“查看者”先向 Google 进行身份验证?
这是我的代码片段(已编辑)...
$.ajax({
type: 'GET',
url: encodeURI('https://www.googleapis.com/calendar/v3/calendars/' + calendarId+ '/events?key=' + myKey),
dataType: 'json',
success: function (response) {
console.log(response);
//here is where I need to get the number of participants
},
error: function (error) {
console.log(error);
//tell that an error has occurred
}
这是输出...
{种类:'calendar#events',etag:'"p324e9j5nqabva0g"',摘要:'EDWC Schedule',描述:'',更新:'2022-01-04T08:09:10.933Z', ...}
访问角色:'reader'
默认提醒:(0)[]
描述: ''
etag: '""'
项目:(2)[{...},{...}]
0: {种类: 'calendar#event', etag: '""', id: '', 状态: 'confirmed', htmlLink:…}
1: {kind: 'calendar#event', etag: '""', id: '', status: 'confirmed', htmlLink:…}
会议数据:{}
创建:''
创建者:{}
描述: ''
结束:{dateTime: '2022-01-08T16:00:00+11:00', timeZone: 'Australia/Sydney'}
电子标签:''
事件类型:'default'
环聊链接:''
html链接:''
iCalUID: ''
ID: ''
种类:'calendar#event'
位置:'Australia'
组织者:{email: '', displayName: '', self: true}
顺序:0
开始:{日期时间:'2022-01-08T13:00:00+11:00',时区:'Australia/Sydney'}
状态:'confirmed'
概括: ''
更新:'2022-01-04T08:09:10.933Z'
[[原型]]:Object
[[原型]]:Object
长度:2
[[原型]]:数组(0)
种类:'calendar#events'
下一个同步令牌:'CIjkzLfSl_UCEAAYASCvg6XIAQ=='
概括: ''
时区:'Australia/Melbourne'
更新:'2022-01-04T08:09:10.933Z'
[[原型]]:Object
- 根据你的问题,答案是肯定的。发送到 Google 日历 API 的每个请求都必须包含授权令牌。现在,该授权并不总是需要一个同意屏幕,它也可以是一个短暂的访问令牌或API key (就像你的例子)。我鼓励您阅读有关授权过程的更多信息 here。
- 根据您的代码片段和响应,事件列表位于响应对象的 属性 项内。 Here 您可以找到响应对象的结构,但简而言之,您可以通过循环遍历项目来访问事件,如下所示:
for (var event of response['items']){}
您可以使用 Google Api Node.js Client 以这种方式完成此操作:
Google Calendar Event Attendees
Run in Fusebit
const calendarClient = googleClient.calendar('v3');
// Update the below fields with your desired values
const calendarId = 'YOUR_CALENDAR_ID';
const eventId = 'YOUR EVENT_ID';
const response = await calendarClient.events.get({
calendarId,
eventId,
});
const attendees = response.data.attendees;
我正在尝试显示“public”google 日历中的事件。我的要求是获得与会者的数量(不一定是与会者的姓名)。但是,当我使用日历 API 获取事件时(使用 API 键和 CalendarID);该活动缺少提到的整个与会者部分 here。
我的问题:我需要进行身份验证吗?这是否意味着这不能是 public,而显示此信息的 web-pages 将需要“查看者”先向 Google 进行身份验证?
这是我的代码片段(已编辑)...
$.ajax({
type: 'GET',
url: encodeURI('https://www.googleapis.com/calendar/v3/calendars/' + calendarId+ '/events?key=' + myKey),
dataType: 'json',
success: function (response) {
console.log(response);
//here is where I need to get the number of participants
},
error: function (error) {
console.log(error);
//tell that an error has occurred
}
这是输出...
{种类:'calendar#events',etag:'"p324e9j5nqabva0g"',摘要:'EDWC Schedule',描述:'',更新:'2022-01-04T08:09:10.933Z', ...} 访问角色:'reader' 默认提醒:(0)[] 描述: '' etag: '""' 项目:(2)[{...},{...}] 0: {种类: 'calendar#event', etag: '""', id: '', 状态: 'confirmed', htmlLink:…} 1: {kind: 'calendar#event', etag: '""', id: '', status: 'confirmed', htmlLink:…} 会议数据:{} 创建:'' 创建者:{} 描述: '' 结束:{dateTime: '2022-01-08T16:00:00+11:00', timeZone: 'Australia/Sydney'} 电子标签:'' 事件类型:'default' 环聊链接:'' html链接:'' iCalUID: '' ID: '' 种类:'calendar#event' 位置:'Australia' 组织者:{email: '', displayName: '', self: true} 顺序:0 开始:{日期时间:'2022-01-08T13:00:00+11:00',时区:'Australia/Sydney'} 状态:'confirmed' 概括: '' 更新:'2022-01-04T08:09:10.933Z' [[原型]]:Object [[原型]]:Object 长度:2 [[原型]]:数组(0) 种类:'calendar#events' 下一个同步令牌:'CIjkzLfSl_UCEAAYASCvg6XIAQ==' 概括: '' 时区:'Australia/Melbourne' 更新:'2022-01-04T08:09:10.933Z' [[原型]]:Object
- 根据你的问题,答案是肯定的。发送到 Google 日历 API 的每个请求都必须包含授权令牌。现在,该授权并不总是需要一个同意屏幕,它也可以是一个短暂的访问令牌或API key (就像你的例子)。我鼓励您阅读有关授权过程的更多信息 here。
- 根据您的代码片段和响应,事件列表位于响应对象的 属性 项内。 Here 您可以找到响应对象的结构,但简而言之,您可以通过循环遍历项目来访问事件,如下所示:
for (var event of response['items']){}
您可以使用 Google Api Node.js Client 以这种方式完成此操作:
Google Calendar Event Attendees | Run in Fusebit |
---|
const calendarClient = googleClient.calendar('v3');
// Update the below fields with your desired values
const calendarId = 'YOUR_CALENDAR_ID';
const eventId = 'YOUR EVENT_ID';
const response = await calendarClient.events.get({
calendarId,
eventId,
});
const attendees = response.data.attendees;