0

朋友们,我有一些问题。我第一次使用 Facebook C# SDK 6.0.10.0,我这样做是为了将我的桌面应用程序与 facebook 连接起来。我使用了以下代码...

public partial class FacebookLogin : Form
{
    Uri login_url;
    String redirect_url;
    private FacebookOAuthResult fbAOuthResult;

    public FacebookLogin()
    {
        InitializeComponent();
        fbAOuthResult = new FacebookOAuthResult();
        login_url = new Uri("https://www.facebook.com/dialog/oauth?client_id=" + ConfigurationManager.AppSettings["AppID"] + "&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=user_photos,friends_photos,publish_stream&display=popup&response_type=token");
        webBrowserFB.Navigate(login_url);
    }        

    void webBrowserFB_Navigated(object sender, System.Windows.Forms.WebBrowserNavigatedEventArgs e)
    {
        if(fbAOuthResult.IsSuccess)
        {
            this.DialogResult = DialogResult.OK;
            redirect_url = webBrowserFB.Url.OriginalString;
            MessageBox.Show(redirect_url);
            this.Close();
        }
    }
}

当我从Facebook 文档中阅读有关如何连接桌面应用程序的相同内容时。但我收到以下错误...

'Facebook.FacebookOAuthResult.FacebookOAuthResult()' 由于其保护级别而无法访问

请帮助我,如果我在任何地方遗漏了什么或者我的方法不好,你可以纠正我,指引我正确的道路,因为我还是一名大学生,请为我提供更好的代码,如果可能的话..:-)

4

1 回答 1

4

Ramhound 先生和所有朋友,我没有使用 FacebookOAuthResult() 方法。这很简单,而且也很有效。我不明白你们为什么不在线提供一个简单的方法来完成任务......这是我使用的代码......

    public FacebookLogin()
    {
        try
        {
            InitializeComponent();
            login_url = new Uri("https://www.facebook.com/dialog/oauth?client_id=" +
            ConfigurationManager.AppSettings["AppID"] +
            "&redirect_uri=https://www.facebook.com/connect/login_success.html" +
            "&scope=user_photos,friends_photos,user_groups,friends_groups,read_friendlists,publish_stream" +
            "&display=popup" +
            "&response_type=token");
            webBrowserFB.Navigate(login_url);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

请记住在参数内将显示样式保持为“弹出”,当您通过 Web 浏览器控件导航时,它将为您提供提示样式的登录显示...您可以根据需要添加更多权限甚至更多参数以及每个细节你会从这里得到它。只需彻底检查...现在如果登录成功,如何捕捉响应...?请看下面的代码...

    void webBrowserFB_Navigated(object sender, System.Windows.Forms.WebBrowserNavigatedEventArgs e)
    {
        try
        {
            if (webBrowserFB.Url.OriginalString.StartsWith("https://www.facebook.com/connect/login_success.html"))
            {
                redirect_url = webBrowserFB.Url.OriginalString;                    
                this.DialogResult = System.Windows.Forms.DialogResult.Yes;
                this.Close();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

现在您可以在代码中操作上面的 redirect_url 变量来操作它并获取您的访问令牌并开始使用 Facebook C# SDK 更好地完成您的工作......

我将很快将我的应用程序作为免费软件在线上传,并将为您提供与此代码的工作示例相同的链接。

如果你们对此代码有任何疑问,可以在这里或我经常访问的Facebook 页面上问我。

请我提出好的建议以及任何改进或比这更好的代码......

注意:这里的 webBrowserFB 是我给我的网络浏览器控件起的名字

于 2012-12-15T15:44:55.407 回答