2012-03-06 2 views
0

У меня есть настольное приложение (маленькая игра), которое должно быть в состоянии опубликовать комментарий к стене пользователя. Как «Х выиграл турнир против Y и Z».facebook sdk C# post на стене пользователя

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

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

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

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

+0

вы пробовали пример, приведенный в «Post Опубликовать» в http://facebooksdk.codeplex.com/wikipage?title=Code% 20Examples & referringTitle = Документация – scibuff

+0

Я не сделал, я попробую на этой неделе спасибо – castors33

+0

, но он не объясняет, как получить токен – castors33

ответ

0

Наконец,

Я сделал реальный 360 поворот, просто не используя facebook SDK. Кто-то рассказал мне, как легко было отправлять сообщения только с помощью HTTP-запросов! И с помощью другого сообщения (http://stackoverflow.com/questions/6024912/asp-net-post-to-facebook-wall) Я понял, как это сделать. Вот мой маленький простой код для этого. В основном, я использовал 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> 

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

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

1

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

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

+0

, вы имеете в виду сделать настоящий веб-сайт или только веб-сайт с html-страницами на моем компьютере достаточно ? – castors33

+0

Вы можете проверить его локально, конечно. Просто привыкнуть к способу аутентификации, поскольку вы будете использовать это для своего рабочего стола C# позже. – DMCS

+0

Я пробовал это так, но я не могу заставить его работать ... на тестовой странице JavaScript в Facebook мой код работает , но когда я пытаюсь его локально, он никогда не работает ... Я не понимаю, почему. Мне нужно что-то еще? Мой код прост: скачайте Facebook SDK C# при открытии окна. затем попытайтесь опубликовать что-то на facebook ... но этот шаг никогда не работает ... в основном ...3 fonctions называются: FB.init, fonction для загрузки SDK и, наконец, FB.ui – castors33

Смежные вопросы