我的连接代码如下:
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将返回错误。
答案 0 :(得分:2)
见这个:
http://facebooksdk.codeplex.com/workitem/5859
基本上,请使用:
Response.Redirect(loginUrl.AbsoluteUri);