使用C#Facebook SDK连接到Facebook

时间:2011-11-02 17:20:56

标签: 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'转换为'string'。显然,GetLoginUrl方法返回一个类型Uri,Redirect需要一个字符串。还有另一种方法可以重定向到一个类型 - 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将返回错误。

1 个答案:

答案 0 :(得分:2)

见这个:
http://facebooksdk.codeplex.com/workitem/5859

基本上,请使用:

Response.Redirect(loginUrl.AbsoluteUri);