2011-05-01 44 views
0

我使用Facebook C#SDK版本5.0.10打开请求许可。当我自己登录时,我不明白为什么“请求权限”界面在选项卡中打开而不是在新的弹出窗口中打开。试图在弹出

这里是我的代码:

var parameters = new Dictionary<string, object> 
{ 
    { "response_type", "token" }, 
    { "display", "popup" }, 
    { "state", returnUrl }, 
    { "scope", scope.ToString() }, 
}; 

[...] 

var loginUri = oAuthClient.GetLoginUrl(parameters); 

没有任何人有一个想法?

+0

确保您的浏览器未配置为一个选项卡打开新的弹窗..除此之外,不知道(所以我没有做这一个“答案”) – DevTheo 2011-05-02 14:00:55

回答

0

我也用C#SDK 5.0.10。我建议下载示例(FacebookSDK-5.0.10.0-41e55d6506e.src.zip)并检查名为“CSASPNETFacebookApp”的samle。

我使用的样品同样的方法对我来说,权限不在一个新标签或一个新的弹出打开,但更重要的:在同一页。当您授予权限时,您将自动重定向到您尝试访问的应用程序页面。非常实用。用几行代码就可以使认证工作。

对于重定向,确保在web.config中有处理程序:

<httpHandlers> 
    <add verb="*" path="facebookredirect.axd" type="Facebook.Web.FacebookAppRedirectHttpHandler, Facebook.Web"/> 
</httpHandlers> 

如果你想弹出,那么你必须使用FBML(在HTML/aspx页面):

<fb:login-button onlogin="document.location.href=document.location.href;" perms="publish_stream">Grant Permissions</fb:login-button> 

当您单击“授予权限”按钮,权限请求弹出框将被打开。

希望这会有所帮助。