<pre class="brush:c#;">
Requirements:
Facebook c# SDK 5.4.1.0 (Tried on OS 7.1)
FB App code
Convert the writeablebitmap to byte array
// convert writeablebitmap to byte array for upload byte[] buffer = null; using (MemoryStream ms = new MemoryStream()) { Extensions.SaveJpeg(MyGlobals.bmp2, ms, MyGlobals.bmp2.PixelWidth, MyGlobals.bmp2.PixelHeight, 0, 100); buffer = ms.ToArray(); }
Post process
// post to facebook var fb = new FacebookClient(_accessToken); fb.PostCompleted += (o, args) => { // incase you support cancellation, make sure to check // e.Cancelled property first even before checking (e.Error!=null). if (args.Cancelled) { // for this example, we can ignore as we don't allow this // example to be cancelled. // you can check e.Error for reasons behind the cancellation. var cancellationError = args.Error; } else if (args.Error != null) { // error occurred Dispatcher.BeginInvoke(() => { MessageBox.Show(args.Error.Message); }); } else { // the request was completed successfully var result = (IDictionary)args.GetResultData(); _lastMessageId = (string)result["id"]; // make sure to be on the right thread when working with ui. Dispatcher.BeginInvoke(() => { MessageBox.Show("Message Posted successfully"); txtMessage.Text = string.Empty; btnDeleteLastMessage.IsEnabled = true; }); } }; var facebookUpload = new Facebook.FacebookMediaObject { FileName = Guid.NewGuid() + ".jpg", ContentType = "image/jpg" }; facebookUpload.SetValue(buffer); var photoDetails = new Dictionary (); photoDetails.Add("message", "sample"); photoDetails.Add("image", facebookUpload); fb.PostAsync(@"/photos", photoDetails); // alternative way /* var parameters = new Dictionary (); parameters["message"] = "testing"; parameters["file"] = new FacebookMediaObject { ContentType = "image/jpeg", FileName = "image.jpeg", }.SetValue(buffer); fb.PostAsync("me/photos", parameters); */
No comments:
Post a Comment