Facebook SDK c # пост на стене пользователя - PullRequest
0 голосов
/ 06 марта 2012

У меня есть настольное приложение (небольшая игра), которое должно иметь возможность оставлять комментарии на стене пользователя. Как "Х выиграл турнир против Y и Z".

Я читал любую документацию и API Facebook, но не могу понять. Я понял, как это сделать: с помощью токена доступа получите информацию о пользователе, используя GraphAPI, и затем сможете разместить ее на своей стене.

Но, все примеры и документация мне не очень помогают, они только часть. Более того, Facebook меняет способ сделать это ... поэтому я запутался.

Так что я хотел бы знать, как на самом деле это сделать. Я имею в виду, самый простой способ найти для меня. Это действительно небольшое приложение для нескольких человек, своего рода первое тестовое приложение.

Спасибо за любую подсказку!

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Выполнение аутентификации для настольного приложения сложнее, чем для веб-приложения. Поскольку это «первое тестовое приложение», я настоятельно рекомендую разработать его как веб-приложение с использованием Facebook JavaScript SDK (http://developers.facebook.com/docs/reference/javascript/). Как только вы все это заработаете, переходить к приложению Windows для настольных компьютеров будет намного проще. , поскольку теперь у вас уже есть проработанная часть аутентификации (потому что ваше приложение для настольных компьютеров будет использовать javascript SDK для аутентификации пользователя).

Но если вы хотите просто прыгнуть, смотрите: http://blog.prabir.me/post/Facebook-CSharp-SDK-Writing-your-First-Facebook-Application-v6.aspx

0 голосов
/ 15 марта 2012

Наконец,

Я сделал настоящий поворот на 360, просто не используя Facebook SDK.Кто-то сказал мне, как легко публиковать сообщения только с помощью http-запросов!И с помощью другого поста (/5170948/asp-net-soobschenie-na-stene-facebook) я выяснил, как это сделать. Вот мой маленький простой код для этого. В основном, я использовал WPF, чтобы создать окна, где «пользователь» сможет подключаться к Facebook ивверху также есть текстовое поле, показывающее, что я хочу ... токен или веб-ответ ... наконец, у меня было 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>

все, что вам нужно сделать, это создать новый prodjet WPF и записать эти строки вфайлы. Также вы должны изменить appID и userID. Я использовал мой, чтобы проверить, но это действительно просто для кода, чтобы найти пользовательский ID.

Я надеюсь, что это поможет вам, даже если это не решение, использующееfacebookSDK

...