icloud カレンダー (CalDav) を解析しようとしています。カレンダーは webcal-protocol 経由でアクセスできます。カレンダーのアドレスは次のようになりますwebcal://p19-calendarws.icloud.com/ca/....
だから私の(できれば簡単な)質問は次のとおりです:webcal-protocolでリクエストを送信するにはどうすればよいですか?リクエストモジュールで試してみましたが、そのエラーメッセージが表示されました[Error: Invalid protocol: webcal:]
また、nativ http-module はそれに適していないようです。
編集: http-module を試してみました: var url = "webcal://p19-calendarws.icloud.com/ca/****************";
var http = require('http');
http.get(url, function(res) {
console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
次のエラーを取得します。Error: Protocol:webcal: not supported.
解決策:まず、カレンダーのアドレスのwebcal://
を
に置き換える必要があります。https://
Apple はカレンダーの icalendar ファイルにリダイレクトします。リダイレクトのため、リダイレクトを非常にうまく処理するリクエストモジュールを使用します。
var request = require('request');
var calendarUrl = 'webcal://p19-calendarws.icloud.com/*****';
var options = {
url: calendarUrl.replace('webcal://', 'https://'),
gzip: true
};
request(options, function (error, response, icalData) {
console.log(icalData);
});