2010-08-30 275 views
0

即時通訊設法從Facebook中的頁面提取飼料,如果我使用瀏覽器來獲取飼料,那麼工作正常 - 但是當我試圖建立一個腳本來獲取XML時,它會返回HTML,任何想法爲什麼?是否有任何其他方式來獲得一個粉絲飼料的XML?使用此URLFacebook粉絲頁面訂閱

的C#代碼:

private string GetFacebookPosts(string FacebookID, int NumberOfPosts) 
    { 

     string feedadress = "http://www.facebook.com/feeds/page.php?format=atom10&id=" + FacebookID.ToString(); 
     WebClient web = new WebClient(); 
     return web.DownloadString(feedadress); 
    } 

    #region Module rendering 

    /// <summary> 
    /// Renders the module output XML for frontend 
    /// </summary>  
    protected override string Render(Page page) 
    { 
     string FacebookResponse = GetFacebookPosts(ModuleEditionInstance.FacebookID, ModuleEditionInstance.NumberOfPosts); 

     XmlDocument FacebookXML = new XmlDocument(); 
     FacebookXML.LoadXml(FacebookResponse); 


     // Transform the rendered xml with the current XslSnippet 
     return ApplyXslSnippet(FacebookXML.InnerXml, page); 
    } 

    #endregion` 

當接收來自Facebook我得到一個HTML頁面的響應,這是一個不兼容的響應瀏覽器im來自 - 如果是這樣的話,那麼我如何得到飼料?

+0

我的猜測是你沒有提供所要求的認證相關的cookie。服務器將重定向到登錄頁面。 – Foole 2010-08-30 10:28:45

回答

2

如果你假裝客戶端什麼是已知的瀏覽器如IE通過將它的User-Agent頭:

web.Headers["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)"; 
+0

太棒了,就像一個魅力:) Thx – Nicky 2010-08-30 12:48:24