星期日, 11月 26, 2006

如何取得MSN Space內容

設定MSN Space

  1. 確認你的MSN帳號名稱, 假設你的Blog為http://OhOh.spaces.live.com, 則帳號名稱為"OhOh"
  2. 開啟電郵發佈功能
  3. 設定密語

使用MetaWeblog API

  1. 安裝XML-RPC.NET以便使用XML-RPC
  2. AddReference CookComputing.XmlRpcV2.dll
  3. 加入一個新的Class,將以下Code複製進去: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msnspaces/MetaWeblogAPI_CSharp_Code_Sample.asp
  4. using MetaWeblogApi;
  5. 完成:
    MsnSpacesMetaWeblog mw = new MsnSpacesMetaWeblog();
    Post[] ps = mw.getRecentPosts("MyBlog", "OhOh", "ooxxooxx",20);
上述方式最多只能夠在msn space抓到最新的20篇post,如果要抓更多,請參考國良先生在微軟技術社群討論區的文章:
我之前有用C#配合MetaWeblog API寫出一個備份程式,請參考「
Horn Village|牛角村: 【msnSpacesBackup 】利用 MetaWeblog API 來備份 msnSpaces 的網誌」。
要取得所有文章的重點在於postid,若上面那篇文章的URL是...cns!5759F9D78C26191!15004.entry 其中的5759F9D78C26191!15004就是postid,「5759F9D78C26191!」是固定的(但每個人的都不同)而「15004」都是整數而且是越新的文章數值越大,所以要抓全部文章的方法就是從GetRecentPosts取得最新文章的postid(簡單一點就用人工輸入)然後用迴圈遞減postid由GetPost()取得資料。
開站時間越久或文章越多,花費的時間就越多。