2011-05-11 43 views
1

我知道可以根據諸如谷歌日曆之類的來源設置事件的顏色,但我想知道是否有任何方法可以自動檢索顏色,因爲它是在Google日曆本身上設置的?Fullcalendar jQuery - 可以從Google日曆中檢索顏色?

翻看gcal.js,似乎沒有任何關於顏色的推送,但在google的json api(json-c)中,有一個對顏色的引用。

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

我想這是一個功能請求,Fullcalendar的問題,但我想知道如果我在那裏已經失去了一些東西?

謝謝!

回答

1

日曆的顏色不在XML,ICAL Feed中。它僅顯示在用戶可用的日曆列表中。它列出了日曆和使用: 克卡命名空間元素引用

谷歌日曆提供的 元供稿(也列出了 用戶的日曆飼料),用於幾個 擴展元素。這些元素都在克卡命名空間 ,而不是谷歌 數據的命名空間,因爲它們是特定 日曆

所以不幸的是,gcal.js不支持獲取的服務,您將無法獲得除色你使用另一個插件來做到這一點。


在這種情況下,應該是這樣簡單。 在推它的gcal.js - 我認爲你可以在

color: entry['gCal$color']['value'], 

谷歌源飼料的行添加的內容,包含此值:(日曆列表 - 不是日曆)

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

以前在fullcalendar jQuery - Possible to retrieve description from Google Calendar events?上回答了一個gcal/fullcalendar問題。您需要修改gcal.js的來源。你可能想只是掛在谷歌日曆對象關閉事件(這樣你就可以訪問顏色和其他一切):

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 
        }); 
+0

哪裏/你怎麼弄的顏色?哪條線呢? – ppumkin 2011-05-12 12:21:45

+1

您的答案錯誤 – ppumkin 2011-05-12 12:35:01

+0

好吧,顏色只包含在* allcalendars *資訊提供中(請參閱http://code.google.com/apis/calendar/data/2.0/developers_guide_protocol.html#ManagingSubscriptions)。您需要獲取並解析它以獲取每個包含日曆的顏色:然後您必須確定事件來自哪個日曆(使用* entry *對象),並且您將顏色設置爲使用。我的回答沒有錯,只需要你真的做好這項工作。 – Femi 2011-05-12 14:08:50

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); 
 

 
       }); 
 
      }); 
 
     }