facebook sdk c#发布在用户的墙上

时间:2012-03-06 16:27:58

标签: facebook-c#-sdk

我有一个桌面应用程序(一个小游戏)必须能够在用户的墙上发表评论。就像“X赢得了对抗Y和Z的比赛”。

我一直在阅读任何文档和Facebook API,但我无法弄清楚。我已经理解了这样做的方法:使用访问令牌然后使用GraphAPI获取用户的信息,然后将其发布在他的墙上。

但是,所有的例子和文档都没有真正帮助我,它们只是其中的一部分。此外,Facebook正在改变这样做的方式......所以我很困惑。

所以我想知道如何真正做到这一点。我的意思是,最简单的方法是找到我。对于少数人来说,这是一个非常小的应用程序,是第一个测试应用程序。

感谢您的任何线索!

2 个答案:

答案 0 :(得分:1)

为桌面应用程序执行身份验证比基于Web的应用程序更复杂。由于这是“第一个测试应用程序”,我强烈建议使用Facebook JavaScript SDK(http://developers.facebook.com/docs/reference/javascript/)将其开发为Web应用程序。一旦你可以在那里工作,那么转到Windows桌面应用程序会容易得多,因为现在你已经完成了身份验证部分(因为你的桌面应用程序将使用javascript SDK来授权用户)。 / p>

但如果你想跳入,请参阅:http://blog.prabir.me/post/Facebook-CSharp-SDK-Writing-your-First-Facebook-Application-v6.aspx

答案 1 :(得分:0)

最后,

我通过简单地不使用facebook SDK进行了真正的360转。有人告诉我,仅使用http请求发布是多么容易!并在另一篇文章的帮助下(http://stackoverflow.com/questions/6024912/asp-net-post-to-facebook-wall) 我想出了如何做到这一点。这是我做这个的简单代码。基本上,我使用WPF创建一个窗口,“用户”可以连接到Facebook,顶部还有一个textBox,用于显示我想要的东西......令牌或网络响应......最后,我有2个按钮:第一个登录到facebook,第二个登录facebook ...在Window1.xaml.cs中有代码

using System;
using System.Text;
using System.Windows;
using System.Net;
using System.IO;

namespace HDI_WPF_WebBrowser_cs
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
        private void btnOnline_Click(object sender, RoutedEventArgs e)
        {
            //dont forget to change the appID
            webOutput.Navigate(new Uri("https://www.facebook.com/dialog/oauth?client_id=APPID&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token"));
        }

        private void btnCustom_Click(object sender, RoutedEventArgs e)
        {
            string adresseWeb = webOutput.Source.ToString();

            string token = adresseWeb.Remove(0, adresseWeb.IndexOf("#access_token=") + 14);

            token = token.Remove(token.IndexOf("&expire"));

            txtInput.Text = token;
            //dont forget to change the userID
            var url = string.Format("https://graph.facebook.com/USERID/feed?access_token=" + token);

            var req = WebRequest.Create(url);
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";

            string postData = "'access_token='" + token 
                            + "'&message=Testing testing";

            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            var stream = req.GetRequestStream();
            stream.Write(byteArray, 0, byteArray.Length);
            stream.Close();

            WebResponse response = req.GetResponse();
            txtInput.Text = ((HttpWebResponse)response).StatusDescription;
            stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream);            
        }
    }
}

和Window1.xaml,用于WPF

<Window x:Class="HDI_WPF_WebBrowser_cs.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="500" Width="600">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="2*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <TextBlock Grid.Column="0" Grid.Row="0" Text="Input:" HorizontalAlignment="Right" />
        <TextBox x:Name="txtInput" Background="Bisque" Grid.Row="0" Grid.Column="1" />
        <WebBrowser x:Name="webOutput" Grid.Row="1" Grid.ColumnSpan="2" />
        <StackPanel Grid.Row="2" Grid.ColumnSpan="2" Orientation="Horizontal">
            <Button x:Name="btnOnline" Content="Load Online" Click="btnOnline_Click" />
            <Button x:Name="btnCustom" Content="Load Custom" Click="btnCustom_Click" />
        </StackPanel>
    </Grid>
</Window>

您所要做的就是创建一个新的WPF prodjet并在文件中写下这些行。您还必须更改appID和userID。我用我的测试但是编写danamicly找到userID非常简单。

我希望它能帮到你,即使它不是使用facebookSDK的解决方案