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

ラムハウンドさんとすべての友達、私は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は、Webブラウザーコントロールに付けた名前です。

于 2012-12-15T15:44:55.407 に答える