2011-11-02 47 views
0

我的連接代碼如下連接至Facebook:使用C#的Facebook SDK

String appId = Facebook.FacebookApplication.Current.AppId; 
var oauth = new FacebookOAuthClient { AppId = appId }; 
var parameters = new Dictionary<string, object> 
{ 
    { "response_type", "code" }, 
    { "display", "popup" }, 
    { "scope", "email" } 
}; 
var loginUrl = oauth.GetLoginUrl(parameters); 
Response.Redirect(loginUrl); 

我收到錯誤:不能「從的System.Uri」轉換爲「字符串」的最後一行。顯然,GetLoginUrl方法返回一個Uri類型,並且重定向需要一個字符串。有沒有另一種方式重定向到一個類型 - Uri?

codeplex提供的示例是「webBrowser.Navigate(loginUrl);」但我沒有使用webBrowser控件。我可以做?還是有另一種方式?

我找到了解決這個問題的方法之一。

將最後兩行:

var loginUrl = oauth.GetLoginUrl(parameters); 
Response.Redirect(loginUrl); 

隨着

var loginUrl = HttpUtility.HtmlEncode(oauth.GetLoginUrl(parameters)); 
Response.Redirect(HttpUtility.HtmlDecode(loginUrl)); 

轉換爲HTML和背部解決問題。請注意,如果您離開loginUrl HtmlEncoded,Facebook將返回錯誤。

回答