2012-02-10 68 views
-1

嗨我寫一個應用程序,允許用戶發佈應用程序內的狀態更新,我相信ive得到身份驗證正確工作的登錄,我只是不知道如何去發佈狀態更新。任何代碼/示例/教程如何去做這將是太棒了,這是我迄今爲止的驗證代碼。如何從我的WP7應用程序發佈狀態更新到Facebook?

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) 
      { 

      } 
     } 
    } 

回答

2

要發佈一個狀態,做一個HTTP POST到/me/feed與所謂的「消息」後的參數,它的價值是認證用戶發佈的內容。

使用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

相關問題