Fullcalendar jQuery - 可以从谷歌日历中检索颜色?

时间:2011-05-11 13:52:20

标签: jquery json fullcalendar

我知道可以根据Google日历这样的来源设置事件的颜色,但我想知道是否有任何方法可以自动检索颜色,因为它是在Google日历本身设置的?

通过gcal.js看,似乎没有任何关于颜色的推动,但是在google的json api(json-c)中,有一个颜色的引用。

http://code.google.com/apis/calendar/data/2.0/developers_guide_protocol.html#RetrievingAllCalendars

我想这是对Fullcalendar的功能请求的问题,但我想知道我是否遗漏了已经存在的内容?

谢谢!

3 个答案:

答案 0 :(得分:1)

日历的颜色不在XML,ICAL Feed中。它仅显示在用户可用的日历列表中。它列出了日历并使用: GCal名称空间元素参考

  

Google日历提供了几种   用于扩展元素的扩展元素   metafeed(列出的   用户的日历)。这些元素是   在gCal名称空间中,而不是Google   数据名称空间,因为它们是   特定于日历

所以不幸的是,gcal.js不支持获取列表,除非你使用另一个插件,否则你不会得到颜色。


在这种情况下,它会像这样容易。 在推动它的gcal.js中 - 我认为你可以在

行中添加一些内容
color: entry['gCal$color']['value'],

Google源Feed包含以下值:(日历列表 - 不是日历)

<gCal:color value='#2952A3' />          

答案 1 :(得分:0)

之前在fullcalendar jQuery - Possible to retrieve description from Google Calendar events?回答了gcal / fullcalendar问题。您需要修改gcal.js的来源。您可能只想将Google日历对象挂起来(因此您可以访问颜色和其他所有内容):

events.push({
                        id: entry['gCal$uid']['value'],
                        title: entry['title']['$t'],
                        url: url,
                        start: start,
                        end: end,
                        allDay: allDay,
                        location: entry['gd$where'][0]['valueString'],
                        description: entry['content']['$t'],
                        entry: entry
                    });

答案 2 :(得分:0)

我做了https://developers.google.com/google-apps/calendar/v3/reference/colors/get#examples但是在JavaScipt中。这对我有用。

   function getColors() {
       
         gapi
            .client
            .load('calendar', 'v3')
            .then(function () {
               request = gapi.client.calendar.colors.get({
                  'calendarId': calendarId  -> "Your CalendarID"

               });

               request.then(function (resp) {

                  if (resp.result.error) {
                     reportError('Google Calendar Colors: ' + data.error.message, data.error.errors);

                  } else if (resp) {

                     console.log('--- resp ---');
                     console.log(resp.result);  

                  }
               }, function (reason) {
                  console.log('Error: ' + reason.result.error.message);

               });
            });
      }