iCloud API について検索した後、NodeJS と Python の例をいくつか見つけましたが、残念ながら、私はそれらに精通していません。C#でiCloud連絡先リストを取得する方法を知りたいです。
Python での例: https://github.com/mindcollapse/iCloud-API/blob/master/iCloud.py NodeJS での例: https://www.snip2code.com/Snippet/65033/Request-Contact-List-From -iCloud
ログイン コードを C# に解析してみます。
private void iCloudLogin()
{
string guiid = Guid.NewGuid().ToString("N");
//string url = "https://p12-setup.icloud.com/setup/ws/1/login?clientBuildNumber=1P24&clientId=" + guiid;
string url = "https://setup.icloud.com/setup/ws/1/login?clientBuildNumber=1P24&clientId=" + guiid;
using (var client = new WebClient())
{
client.Headers.Set("Origin", "https://www.icloud.com");
client.Headers.Set("Referer", "https://www.icloud.com");
client.Headers.Set("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36");
var values = new NameValueCollection();
values["apple_id"] = appleId;
values["password"] = password;
values["extended_login"] = "false";
var response = client.UploadValues(url, values);
}
}
I receive 400 : Bad request with above code. 間違っている方向を教えてください。コード例があれば助けていただきありがとうございます。
アップデート:
これで、ログインして多くの情報を取得できました。これには、連絡先サーバーの URL、dsid が含まれます。これは、使用したリンクです。
https://p12-setup.icloud.com/setup/ws/1/login?clientBuildNumber=1P24&clientId=MyGuid
その後、以下の URL を使用して連絡先リストを取得します。
https://p35-contactsws.icloud.comは私の連絡先サーバーです。実際にはhttps://p35-contactsws.icloud.com:443ですが、参照する例に基づいて、ポート :443 を削除する必要があります。
しかし、私はまだ 421 を取得します: クライアント エラー