2013-09-22 40 views
1

我可能會過度考慮這一點。在我的網站上,我想從我的公共Google日曆中使用某些數據。我的計劃是把它放在服務器端,這樣我就可以處理它,緩存它並按照我想要的格式進行格式化。從Google日曆中提取公開事件數據

我一直在尋找使用谷歌API庫,但我無法克服任何授權障礙。一個服務帳戶聽起來像我真正想要的,但是我在解決這種情況下的工作方式時遇到了麻煩。

舊的GDATA API可以,但我不太喜歡使用它們,因爲它們看起來在較新的庫中已被相當不贊成。

由於這是所有公共數據,我希望有一個更簡單的方法來獲取我正在尋找的事件數據。

萬一它很重要,我的網站是Asp.Net(MVC)。

更新

好吧,我肯定大大超過認爲它。看到我的答案。

回答

0

對此的一個很好的答案就是簡單地使用日曆的公共地址來獲取數據。這是我已經忘記的一個選項,對於這種特殊情況它可以正常工作。

你可以找到數據的URL,如果你去設置一個特定的日曆,並選擇你想要的格式(我去與XML對於這種情況。)

enter image description here

的數據表明,你擺脫這種服務是非常人性化的讀者優化,但我可以讓它爲我所做的工作。

0

既然RSS已從Google日曆中刪除,我一直在尋找一個簡單的替代品。我在Google Calendar API中挖掘並發現了以下內容:calendar.events.list

Calendar Events List in Google API Explorer是開始使用不同參數和選項的好地方 - 它會爲您構建示例請求字符串。您可以看到我指定了2/5/2016的最短時間,按開始時間排序,並顯示已刪除的事件。

GET https://www.googleapis.com/calendar/v3/calendars/[CALENDAR ID HERE]/events? 
orderBy=startTime&showDeleted=true&singleEvents=true& 
timeMin=2016-02-05T00%3A00%3A00Z&key={YOUR_API_KEY} 

結果是在JSON中,所以你可以用你最喜歡的編程語言,ASP.NET或任何其他語言解析它。結果如下:

{ 
    "kind": "calendar#events", 
    "etag": "\"123456789123456\"", 
    "summary": "My Public Calendar", 
    "updated": "2016-01-29T14:38:29.392Z", 
    "timeZone": "America/New_York", 
    "accessRole": "reader", 
    "defaultReminders": [ ], 
    "items": [ { 
    "kind": "calendar#event", 
    "etag": "\"987654\"", 
    "id": "sfdljgsdkjgheakrht4sfdjfscd", 
    "status": "confirmed", 
    "htmlLink": "https://www.google.com/calendar/event?eid=sdgtukhysrih489759sdkjfhwseihty7934hyt94hdorujt3q95uy689u9yhfdgnbiwe5hy", 
    "created": "2015-07-06T16:21:59.000Z", 
    "updated": "2015-07-06T16:21:59.329Z", 
    "summary": "In-Service Day", 
    "location": "Maui, HI", 
    "creator": { 
     "email": "[email protected]", 
     "displayName": "Joe Abra" 
    }, 
    "organizer": { 
     "email": "[email protected]", 
     "displayName": "My Public Calendar", 
     "self": true 
    }, 
    "start": { 
     "date": "2016-02-08" 
    }, 
    "end": { 
     "date": "2016-02-09" 
    }, 
    "transparency": "transparent", 
    "iCalUID": "[email protected]", 
    "sequence": 0 
    }, 
    { 
    ... 
    }] 
} 
相關問題