Как я могу опубликовать обновление статуса на Facebook из моего приложения WP7? - PullRequest
0 голосов
/ 10 февраля 2012

Привет, я пишу приложение, которое позволяет пользователям публиковать обновления статуса изнутри приложения. Я считаю, что у меня правильно работает аутентификация для входа в систему, я просто не знаю, как публиковать обновления статуса.Любой код / ​​примеры / руководства о том, как это сделать, был бы фантастическим, вот код, который у меня есть для аутентификации.

public partial class FacebookAuth : PhoneApplicationPage
        {
            private string _accessToken;
            private WebBrowser _webBrowser;

            public FacebookAuth()
            {
                InitializeComponent();
                _webBrowser = new WebBrowser();
                this.Loaded += new RoutedEventHandler(FacebookAuthPage_Loaded);
            }

            void FacebookAuthPage_Loaded(object sender, RoutedEventArgs e)
            {
                //Get this from the facebook
                string appId = "XXXXXXXXXXXXXXX";
                string[] extendedPermissions = new[] { "publish_stream", "offline_access", "user_groups" };

                var oauth = new FacebookOAuthClient { AppId = appId };
                //Telling the Facebook that we want token as response
                //and we are using touch enabled device
                var parameters = new Dictionary<string, object>
                        {
                            { "response_type", "token" },
                            { "display", "touch" }
                        };
                //If there's extended permissions build the string and set it up
                if (extendedPermissions != null && extendedPermissions.Length > 0)
                {
                    var scope = new StringBuilder();
                    scope.Append(string.Join(",", extendedPermissions));
                    parameters["scope"] = scope.ToString();
                }
                //Create the login url
                var loginUrl = oauth.GetLoginUrl(parameters);
                //Add webBrowser to the contentPanel
                ContentPanel.Children.Add(_webBrowser);
                _webBrowser.Navigated += webBrowser_Navigated;
                //Open the facebook login page into the browser
                _webBrowser.Navigate(loginUrl);
            }

            void webBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
            {
                FacebookOAuthResult result;
                //Try because there might be cases when user input wrong password
                if (FacebookOAuthResult.TryParse(e.Uri.AbsoluteUri, out result))
                {
                    if (result.IsSuccess)
                    {
                        _accessToken = result.AccessToken;
                        MessageBox.Show(_accessToken);
                        //Hide the browser controller
                        _webBrowser.Visibility = System.Windows.Visibility.Collapsed;
                    }
                    else
                    {
                        var errorDescription = result.ErrorDescription;
                        var errorReason = result.ErrorReason;
                        MessageBox.Show(errorReason + " " + errorDescription);
                    }
                }
            }

            private void PostBtn_Click(object sender, RoutedEventArgs e)
            {

            }
        }
    }

1 Ответ

2 голосов
/ 10 февраля 2012

Чтобы опубликовать статус, отправьте HTTP-сообщение на /me/feed с параметром публикации, называемым «message», и его значением будет то, что отправил аутентифицирующий пользователь.

Использование FacebookClient

var client = new FacebookClient(user_access_token);
dynamic parameters = new ExpandoObject();
parameters.message = "Hello World!"
dynamic post_id = client.Post("/me/feed", parameters);

Смотрите также: http://blog.prabir.me/post/Facebook-CSharp-SDK-Making-Requests.aspx

...