Facebook登录页面未显示,只有包含“成功”一词的白页

时间:2015-10-05 14:20:08

标签: c# facebook winforms facebook-graph-api

我正在使用以下代码在我的Winform应用程序上打开 Facebook登录页面

private const string AppId = "MY_APP_ID";
private Uri loginUrl;
private const string extendedPermissions = "user_about_me,publish_stream,offline_acccess";
FacebookClient fbClient = new FacebookClient();
public Form1()
{
    InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
    Login();
}

private void Login()
{
    dynamic parameters = new ExpandoObject();
    parameters.client_id = AppId;
    parameters.redirect_uri = "https://www.facebook.com/connect/login_success.html";
    parameters.response_type = "token";
    parameters.display = "popup";
    if (!string.IsNullOrWhiteSpace(extendedPermissions))
        parameters.scope = extendedPermissions;
    var fb = new FacebookClient();
    loginUrl = fb.GetLoginUrl(parameters);
    webBrowser1.Navigate(loginUrl.AbsoluteUri);
}

在第一次尝试时,我的webBrowser1仅显示一条警告消息,表示我未通过身份验证以允许该页面。我用Google搜索了该问题,并了解到我应该更改应用的设置(高级)并启用选项

  • 原生或桌面应用?
  • App Secret是否嵌入客户端?

在此之后,我收到一个带有“成功”字样的空白页面而不是警告,而在一两秒后,会添加一个红色警告,提醒我不要在其他任何地方共享此URL并将其视为密码。 enter image description here

有谁知道我在这里缺少什么?

是否因为默认情况下在webBrowser控件中禁用了Cookie?如果是这样,我该如何启用它们?

2 个答案:

答案 0 :(得分:0)

当我将extendedPermissions更改为

时,已正确显示已筛选的登录信息
"user_about_me"

答案 1 :(得分:-1)

我不确定你是故意这样做的,还是从来没有编辑过它,但我发现你从Facebook复制它时就已经离开了private const string AppId = "012345678";。您可以通过自己的AppID将Facebook链接到您的网页,例如{{1}}。如果你不知道你的AppID是什么,那么这篇文章的最佳评分答案就是最好的解释Post about appID

如果这不是问题,请以不同的方式解决您的问题。