2010-02-19 25 views
5

मैं उपयोगकर्ताओं के डिफ़ॉल्ट कैलेंडर फ़ीड (उदा। http://www.google.com/calendar/feeds/[email protected]/private/full) के लिए 'सामान्य' यूआरएल प्राप्त करने का प्रयास कर रहा हूं। मैं यूआरएल के [email protected] भाग का उपयोग उस कैलेंडर के लिए एक अद्वितीय आईडी के रूप में करना चाहता हूं।Google कैलेंडर API: डिफ़ॉल्ट कैलेंडर के लिए कैलेंडर प्रविष्टि कैसे प्राप्त करें?

मुझे पता है कि मैं यूआरएल http://www.google.com/calendar/feeds/default/private/full का उपयोग कर डिफ़ॉल्ट कैलेंडर के साथ चीजें कर सकता हूं। हालांकि, मुझे उस यूआरएल से कैलेंडर एंट्री बनाने का कोई तरीका नहीं मिल रहा है (फिर मैं स्वूरी और कुछ अन्य गुणों को देखने के लिए कोशिश कर सकता हूं कि 'सामान्य' यूआरएल कहीं और है), या इसे 'सामान्य' यूआरएल में परिवर्तित करने के लिए किसी भी प्रकार।

और मुझे पता है मैं इस तरह कैलेंडर की सूची प्राप्त कर सकते हैं:

CalendarQuery query_cal = new CalendarQuery(); 
query_cal.Uri = new Uri("http://www.google.com/calendar/feeds/default/allcalendars/full"); 
CalendarFeed resultFeed = (CalendarFeed) service.Query(query_cal); 
foreach (CalendarEntry entry in resultFeed.Entries) 
{ ... } 

हालांकि, मैं किसी भी तरह से जो उन प्रविष्टियों का डिफ़ॉल्ट कैलेंडर से मेल खाता है पता करने के लिए नहीं मिल रहा।

या डिफ़ॉल्ट कैलेंडर के लिए सामान्य यूआरएल प्राप्त करने का कोई अन्य तरीका।

उत्तर

3

यह शायद सबसे अच्छा तरीका नहीं है, लेकिन मैं इस का उपयोग करें और यह काम करता है:

feedstring = resultfeed.Entries.Item(calendarIndex).Id.AbsoluteUri.Substring(63) 
       postUristring = "https://www.google.com/calendar/feeds/" & feedstring & "/private/full" 

Dim postUri As New Uri(postUristring) 

बस डिफ़ॉल्ट कैलेंडर के लिए calendarIndex = 0 का उपयोग करें। सी # में परिवर्तित करने के लिए बहुत मुश्किल नहीं होना चाहिए!

+0

मैं भी देखा कि डिफ़ॉल्ट कैलेंडर अपनी खोजों में सूचकांक 0 था, लेकिन मैं इस कहीं भी के लिए कोई संदर्भ पाते हैं। तो मुझे लगता है कि कल, गूगल इसके दिमाग को बदल सकता है और इसे अंतिम रख सकता है (उदाहरण के लिए प्रदर्शन कारणों से)? – Legolas

2

बहुत बहुत धन्यवाद! यह पूरी तरह से काम करता है! यहाँ मेरा अंतिम कोड है:


 CalendarQuery query = new CalendarQuery(); 
     query.Uri = new Uri("https://www.google.com/calendar/feeds/default/allcalendars/full"); 
     CalendarFeed resultFeed = (CalendarFeed)service.Query(query); 
     int calendarIndex = 0; 
     string postUristring = string.Empty; 
     foreach (CalendarEntry entry2 in resultFeed.Entries) 
     { 
      if (entry2.Title.Text == "My Pregnancy Calendar") 
      { 
       string feedstring = resultFeed.Entries[calendarIndex].Id.AbsoluteUri.Substring(63); 
       postUristring = "https://www.google.com/calendar/feeds/" + feedstring + "/private/full"; 
      } 
      calendarIndex++; 
     } 
संबंधित मुद्दे