Ich versuche meine Anwendung (Windows Desktop App und Web App) mit mobilen Kalendern zu integrieren.So pushen Ereignisse zum IPhone Kalender
Meine Anwendung
- Push neue Ereignisse auf mobile Kalender soll
- Ereignisse mobil Kalender holen
Bisher habe ich es geschafft, die Integration mit Google Kalender (sehr leicht, simple library + OAuth)
Jetzt möchte ich das gleiche mit iCloud Kalender machen, aber es ist nicht so einfach.
- In iCould-Einstellungen kann ich einen Kalender veröffentlichen. Dann kann ich Ereignisse abrufen (als iCalendar-Datei), aber ich kann keine Ereignisse pushen.
- Das kann keine ernsthaften Bibliotheken für iCould Kalenderintegration finden. Ich gab CalDav.Client einen Versuch, aber müssen CalDAV Server-URL bereitstellen. die nach this aussehen sollte“
https://pXX-caldav.icloud.com/USER_ID/calendars/CALENDAR_ID
. Ich habe keine Ahnung, wasUSER_ID
undCALENDAR_ID
sind und wo sie zu finden.
Irgendwelche Ideen?
PS
es eine Abhilfe ist. Ich kann Bitten Sie den Nutzer, ein Google-Konto zusammen mit einem Kalender zu erstellen und als Proxy zu verwenden. Integrieren Sie IPhone in den Google-Kalender und erstellen Sie die andere Website. Integrieren Sie meine Anwendung in den Google Kalender. Die Konfiguration ist für den Benutzer jedoch mühsam.
EDIT
Ich habe versucht, folgende Anweisungen des @ hnh und entdecken CalDAV auf diese Weise:
PROPFIND https://p42-caldav.icloud.com/ HTTP/1.1
Depth: 0
Prefer: return-minimal
Content-Type: application/xml; charset=utf-8
Host: p42-caldav.icloud.com
Content-Length: 102
<d:propfind xmlns:d="DAV:">
<d:prop>
<d:current-user-principal />
</d:prop>
</d:propfind>
Das Ergebnis war 401:
HTTP/1.1 401 Unauthorized
Content-Type: text/html;charset=utf-8
WWW-Authenticate: x-mobileme-authtoken realm="MMCalDav"
WWW-Authenticate: basic realm="MMCalDav"
Server: iCloudCalendarServer 15G33
Date: Tue, 26 Jan 2016 12:46:14 GMT
X-Responding-Server: mr26p42ic-ztdg05101801 17 a63660a6f7d1a25b5a7ed66dab0da843
X-Transaction-Id: c8dc19d4-c42a-11e5-8381-008cfaeb448c
Content-Length: 141
Strict-Transport-Security: max-age=31536000; includeSubDomains
<html><head><title>Unauthorized</title></head><body><h1>Unauthorized</h1><p>You are not authorized to access this resource.</p></body></html>
EDIT 2
weiter verfolgt Anweisungen, die ich geschafft habe, zu authentifizieren, aber immer noch Probleme mit den Anforderungen aus dem Artikel:
Für:
<d:propfind xmlns:d="DAV:" xmlns:cs="http://calendarserver.org/ns/">
<d:prop>
<d:displayname />
<cs:getctag />
</d:prop>
</d:propfind>
ich: (ctag
nicht gefunden, und displayName
mit Wert "tmp" - was ich nicht kenne)
<?xml version='1.0' encoding='UTF-8'?>
<multistatus xmlns='DAV:'>
<response>
<href>/</href>
<propstat>
<prop>
<displayname>tmp</displayname>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<getctag xmlns='http://calendarserver.org/ns/'/>
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
</multistatus>
Und dafür:
<c:calendar-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav">
<d:prop>
<d:getetag />
<c:calendar-data />
</d:prop>
<c:filter>
<c:comp-filter name="VCALENDAR" />
</c:filter>
</c:calendar-query>
ich 400 Bad Request
Was ist "Ihre Anwendung"? Ist es eine iOS-Anwendung? Oder ein Webservice? – hnh
@hnh Es ist eine Windows-Desktop-Anwendung oder eine Web-Anwendung (vorzugsweise Desktop, aber Web wird auch tun). – gisek
Edit 2: Sehr wahrscheinlich sind die URLs falsch. Lesen Sie sorgfältig [Bauen Sie einen CalDAV-Client] (http://sabre.io/dav/building-a-caldav-client/). – hnh