//package com.lgq.rssreader.share;
//
//public class FacebookShare {
// #region IBlogShare ��Ա
//
// public void BeginLogin(PhoneApplicationPage page, string apiKey, string secretKey)
// {
// string[] extendedPermissions = new[] { "publish_stream", "offline_access" };
//
// var oauth = new FacebookOAuthClient { AppId = apiKey };
//
// var parameters = new Dictionary<string, object>
// {
// { "response_type", "token" },
// { "display", "touch" }
// };
//
// if (extendedPermissions != null && extendedPermissions.Length > 0)
// {
// var scope = new StringBuilder();
// scope.Append(string.Join(",", extendedPermissions));
// parameters["scope"] = scope.ToString();
// }
//
// var loginUrl = oauth.GetLoginUrl(parameters);
//
// RssReader.Common.Helper.BuildLoginPage(page, AccountType.Facebook);
//
// Common.Helper.browserControl.Navigate(loginUrl);
//
// Common.Helper.browserControl.Navigated += (o, args) =>
// {
// FacebookOAuthResult result;
// if (FacebookOAuthResult.TryParse(args.Uri, out result))
// {
// if (result.IsSuccess)
// {
// if(LoginCallBack != null)
// {
// LoginCallBack(this, new ShareEventArgs<string>(true, result.AccessToken));
// }
// }
// else
// {
// var errorDescription = result.ErrorDescription;
// var errorReason = result.ErrorReason;
// if(LoginCallBack != null)
// {
// Deployment.Current.Dispatcher.BeginInvoke(() =>
// {
// Common.Helper.RemoveBrowser();
// });
// LoginCallBack(this, new ShareEventArgs<string>(false, errorDescription));
// }
// }
// }
// };
// Common.Helper.browserControl.NavigationFailed += (o, args) =>
// {
// if (LoginCallBack != null)
// {
// Deployment.Current.Dispatcher.BeginInvoke(() =>
// {
// Common.Helper.RemoveBrowser();
// });
// LoginCallBack(this, new ShareEventArgs<string>(new Exception(Resources.StringResources.FailedToLoginPleaseKeepConnection)));
// }
// };
// }
//
// public event LoginCompletedHandler<string> LoginCallBack;
//
// public void BeginShare(Blog blog, string accessToken)
// {
// var fb = new FacebookClient(accessToken);
//
// IDictionary<string, object> param = new Dictionary<string, object>();
// param["message"] = Resources.StringResources.FacebookTitle;
// param["link"] = blog.Link;//"http://www.example.com/article.html";
// //param["picture"] = "http://www.example.com/article-thumbnail.jpg";
// param["name"] = blog.Title;//"Article Title";
// param["caption"] = Resources.StringResources.CaptionLink;
// param["description"] = blog.Description;//"Longer description of the link";
// //param["actions"] = new
// //{
// // name = "View on Zombo",
// // link = "http://www.zombo.com",
// //};
// //param["privacy"] = new
// //{
// // value = "ALL_FRIENDS",
// //};
// //parameters["targeting"] = new
// //{
// // countries = "US",
// // regions = "6,53",
// // locales = "6",
// //};
// fb.PostAsync("me/feed", param);
// fb.PostCompleted += (sender, eventArgs) =>
// {
// Deployment.Current.Dispatcher.BeginInvoke(() =>
// {
// if (eventArgs.Error != null)
// {
// if(ShareCallBack != null)
// {
// ShareCallBack(this, new ShareEventArgs<string>(false, eventArgs.Error.Message));
// }
// }
// else
// {
// if(ShareCallBack != null)
// {
// ShareCallBack(this, new ShareEventArgs<string>(true, string.Empty));
// }
// }
// });
// };
// }
//
// public event ShareCompletedHandler<string> ShareCallBack;
//
// #endregion
//}