Microsoft MyPhone - .NET访问可能吗?

时间:2010-04-26 15:13:42

标签: c# .net api

我在可用的时间内尽可能多地搜索了这个,但没有提出任何建议。有没有人知道是否有可能以编程方式访问从WinMo设备备份到Microsoft的MyPhone服务的数据,而无需将所有数据恢复到设备?我正在寻找一种在我的桌面计算机上保留联系人和SMS消息的本地备份的方法,但似乎如果有这样做的API,微软根本没有做广告。

我希望我无法在Google上找到任何参考资料是因为我的无能而不是微软不支持。

2 个答案:

答案 0 :(得分:1)

我知道这已经很晚了,但我遇到了同样的问题,我找到了一个解决方法。为此,您需要从IE登录MyPhone,以便代码可以使用身份验证cookie。登录时,请选中“记住我”复选框。然后,只有一米使用该cookie的HTTPRequest。从此处开始,您需要解析响应HTML并“手动”提取所需的信息。

我正在研究这个问题,因为我的Win 6.5手机被盗了,我转而使用Android,因为我不能将Win 7手机视为成品,我需要恢复我的联系信息。

我没有太多时间投资这个小项目,但我希望它能在几天内完成。这个小程序最终可以保存包含MyPhone Web应用程序中所有联系信息的csv文件。

我将分享代码,因此任何想要使用它或进行进一步更改的人都可以免费使用。

到目前为止,这是一个为您提供开始的片段:

string siteUrl = "http://sn1-p1.myphone.microsoft.com/mkweb/storage/Contacts.po";

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(siteUrl);

        request.CookieContainer = new CookieContainer();
        List<Cookie> cookies = new List<Cookie>();
        StreamReader sr = File.OpenText(@"c:\Users\user\AppData\Roaming\Microsoft\Windows\Cookies\user@myphone.microsoft[2].txt");

        while(!sr.EndOfStream)
        {
            string name = sr.ReadLine();
            string value = sr.ReadLine();
            string domain = sr.ReadLine();
            string capacity = sr.ReadLine();
            sr.ReadLine();
            sr.ReadLine();
            sr.ReadLine();
            sr.ReadLine();
            if(!sr.EndOfStream)
            {
                sr.ReadLine();
            }
            var cookie = new Cookie(name, value, "/", "myphone.microsoft.com");
            cookies.Add(cookie);
        }

        foreach (var cookie in cookies)
        {
            request.CookieContainer.Add(cookie);
        }

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        using (StreamReader reader = new StreamReader(response.GetResponseStream()))
        {
            string tmp = reader.ReadToEnd();
        }

答案 1 :(得分:0)

经过一番挖掘后,我在MyPhone用户论坛上找到了一个参考,说明这种操作没有公共API。