static void Main(string[] args) { try { FacebookServiceProvider facebookServiceProvider = new FacebookServiceProvider(FacebookApiId, FacebookApiSecret); /* OAuth 'dance' */ // Authentication using the client-side authorization flow OAuth2Parameters parameters = new OAuth2Parameters() { RedirectUrl = "https://www.facebook.com/connect/login_success.html", Scope = "email, user_relationships,friends_relationships, user_about_me, friends_about_me, user_birthday, friends_birthday, user_hometown, friends_hometown, user_location, friends_location, user_website, friends_website, read_stream" }; string authorizationUrl = facebookServiceProvider.OAuthOperations.BuildAuthorizeUrl(GrantType.ImplicitGrant, parameters); Console.WriteLine("Redirect user to Facebook for authorization: " + authorizationUrl); Process.Start(authorizationUrl); Console.WriteLine("Enter 'access_token' query string parameter from success url:"); string accessToken = Console.ReadLine(); /* API */ IFacebook facebook = facebookServiceProvider.GetApi(accessToken); FacebookProfile me = facebook.UserOperations.GetUserProfile(); DumpProfile("", me); string sTestUserID = "splendidcrm"; TestUserOperations(facebook, sTestUserID); TestPlacesOperations(facebook, sTestUserID); TestLikeOperations(facebook, sTestUserID); TestFriendOperations(facebook, sTestUserID); TestFeedOperations(facebook, sTestUserID); TestGroupOperations(facebook, sTestUserID); TestCommentOperations(facebook, sTestUserID); TestEventOperations(facebook, sTestUserID); TestMediaOperations(facebook, sTestUserID); TestPageOperations(facebook, sTestUserID); TestQuestionOperations(facebook, sTestUserID); TestOpenGraphOperations(facebook, sTestUserID); TestFqlOperations(facebook, sTestUserID); } #if NET_4_0 catch (AggregateException ae) { ae.Handle(ex => { if (ex is Spring.Rest.Client.HttpResponseException) { Console.WriteLine(ex.Message); Console.WriteLine(((Spring.Rest.Client.HttpResponseException)ex).GetResponseBodyAsString()); return true; } return false; }); } #else catch (Spring.Rest.Client.HttpResponseException ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.GetResponseBodyAsString()); } #endif catch (Exception ex) { Console.WriteLine(ex); } finally { Console.WriteLine("--- hit <return> to quit ---"); Console.ReadLine(); } }
static void Main(string[] args) { try { FacebookServiceProvider facebookServiceProvider = new FacebookServiceProvider(FacebookApiId, FacebookApiSecret); /* OAuth 'dance' */ // Authentication using the client-side authorization flow OAuth2Parameters parameters = new OAuth2Parameters() { RedirectUrl = "https://www.facebook.com/connect/login_success.html", Scope = "offline_access,publish_stream" }; string authorizationUrl = facebookServiceProvider.OAuthOperations.BuildAuthorizeUrl(GrantType.ImplicitGrant, parameters); Console.WriteLine("Redirect user to Facebook for authorization: " + authorizationUrl); Process.Start(authorizationUrl); Console.WriteLine("Enter 'access_token' query string parameter from success url:"); string accessToken = Console.ReadLine(); /* API */ IFacebook facebook = facebookServiceProvider.GetApi(accessToken); Console.WriteLine("Enter your status message:"); string message = Console.ReadLine(); #if NET_4_0 facebook.UpdateStatusAsync(message).Wait(); #else facebook.UpdateStatus(message); #endif Console.WriteLine("Status updated!"); } #if NET_4_0 catch (AggregateException ae) { ae.Handle(ex => { if (ex is HttpResponseException) { Console.WriteLine(ex.Message); Console.WriteLine(((HttpResponseException)ex).GetResponseBodyAsString()); return true; } return false; }); } #else catch (HttpResponseException ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.GetResponseBodyAsString()); } #endif catch (Exception ex) { Console.WriteLine(ex); } finally { Console.WriteLine("--- hit <return> to quit ---"); Console.ReadLine(); } }
static void Main(string[] args) { try { FacebookServiceProvider facebookServiceProvider = new FacebookServiceProvider(FacebookApiId, FacebookApiSecret); /* OAuth 'dance' */ #region Client credentials grant flow /* // Client is acting on its own behalf #if NET_4_0 AccessGrant oauthAccessToken = facebookServiceProvider.OAuthOperations.AuthenticateClientAsync().Result; #else AccessGrant oauthAccessToken = facebookServiceProvider.OAuthOperations.AuthenticateClient(); #endif string accessToken = oauthAccessToken.AccessToken; */ #endregion #region Implicit grant flow // Client is acting on behalf of a user (client-side flow) OAuth2Parameters parameters = new OAuth2Parameters() { RedirectUrl = "https://www.facebook.com/connect/login_success.html", Scope = "offline_access,publish_stream" }; string authorizationUrl = facebookServiceProvider.OAuthOperations.BuildAuthorizeUrl(GrantType.ImplicitGrant, parameters); Console.WriteLine("Redirect user to Facebook for authorization: " + authorizationUrl); Process.Start(authorizationUrl); Console.WriteLine("Enter 'access_token' query string parameter from success url:"); string accessToken = Console.ReadLine(); #endregion #region Authorization code grant flow /* // Client is acting on behalf of a user (server-side flow) OAuth2Parameters parameters = new OAuth2Parameters() { RedirectUrl = "https://www.facebook.com/connect/login_success.html", Scope = "offline_access,publish_stream" }; string authorizationUrl = facebookServiceProvider.OAuthOperations.BuildAuthorizeUrl(GrantType.AuthorizationCode, parameters); Console.WriteLine("Redirect user to Facebook for authorization: " + authorizationUrl); Process.Start(authorizationUrl); Console.WriteLine("Enter 'code' query string parameter from callback url:"); string code = Console.ReadLine(); Console.Write("Getting access token..."); #if NET_4_0 AccessGrant oauthAccessToken = facebookServiceProvider.OAuthOperations.ExchangeForAccessAsync(code, "https://www.facebook.com/connect/login_success.html", null).Result; #else AccessGrant oauthAccessToken = doServiceProvider.OAuthOperations.ExchangeForAccess(code, "https://www.facebook.com/connect/login_success.html", null); #endif Console.WriteLine("Done"); string accessToken = oauthAccessToken.AccessToken; */ #endregion /* API */ IFacebook facebook = facebookServiceProvider.GetApi(accessToken); Console.WriteLine("Enter your status message:"); string message = Console.ReadLine(); // This will fail with Client credentials grant flow #if NET_4_0 facebook.UpdateStatusAsync(message).Wait(); #else facebook.UpdateStatus(message); #endif Console.WriteLine("Status updated!"); } #if NET_4_0 catch (AggregateException ae) { ae.Handle(ex => { if (ex is HttpResponseException) { Console.WriteLine(ex.Message); Console.WriteLine(((HttpResponseException)ex).GetResponseBodyAsString()); return true; } return false; }); } #else catch (HttpResponseException ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.GetResponseBodyAsString()); } #endif catch (Exception ex) { Console.WriteLine(ex); } finally { Console.WriteLine("--- hit <return> to quit ---"); Console.ReadLine(); } }
static void Main(string[] args) { try { FacebookServiceProvider facebookServiceProvider = new FacebookServiceProvider(FacebookApiId, FacebookApiSecret); /* OAuth 'dance' */ #region Client credentials grant flow /* * // Client is acting on its own behalf #if NET_4_0 * AccessGrant oauthAccessToken = facebookServiceProvider.OAuthOperations.AuthenticateClientAsync().Result; #else * AccessGrant oauthAccessToken = facebookServiceProvider.OAuthOperations.AuthenticateClient(); #endif * string accessToken = oauthAccessToken.AccessToken; */ #endregion #region Implicit grant flow // Client is acting on behalf of a user (client-side flow) OAuth2Parameters parameters = new OAuth2Parameters() { RedirectUrl = "https://www.facebook.com/connect/login_success.html", Scope = "offline_access,publish_stream" }; string authorizationUrl = facebookServiceProvider.OAuthOperations.BuildAuthorizeUrl(GrantType.ImplicitGrant, parameters); Console.WriteLine("Redirect user to Facebook for authorization: " + authorizationUrl); Process.Start(authorizationUrl); Console.WriteLine("Enter 'access_token' query string parameter from success url:"); string accessToken = Console.ReadLine(); #endregion #region Authorization code grant flow /* * // Client is acting on behalf of a user (server-side flow) * OAuth2Parameters parameters = new OAuth2Parameters() * { * RedirectUrl = "https://www.facebook.com/connect/login_success.html", * Scope = "offline_access,publish_stream" * }; * string authorizationUrl = facebookServiceProvider.OAuthOperations.BuildAuthorizeUrl(GrantType.AuthorizationCode, parameters); * Console.WriteLine("Redirect user to Facebook for authorization: " + authorizationUrl); * Process.Start(authorizationUrl); * Console.WriteLine("Enter 'code' query string parameter from callback url:"); * string code = Console.ReadLine(); * * Console.Write("Getting access token..."); #if NET_4_0 * AccessGrant oauthAccessToken = facebookServiceProvider.OAuthOperations.ExchangeForAccessAsync(code, "https://www.facebook.com/connect/login_success.html", null).Result; #else * AccessGrant oauthAccessToken = doServiceProvider.OAuthOperations.ExchangeForAccess(code, "https://www.facebook.com/connect/login_success.html", null); #endif * Console.WriteLine("Done"); * string accessToken = oauthAccessToken.AccessToken; */ #endregion /* API */ IFacebook facebook = facebookServiceProvider.GetApi(accessToken); Console.WriteLine("Enter your status message:"); string message = Console.ReadLine(); // This will fail with Client credentials grant flow #if NET_4_0 facebook.UpdateStatusAsync(message).Wait(); #else facebook.UpdateStatus(message); #endif Console.WriteLine("Status updated!"); } #if NET_4_0 catch (AggregateException ae) { ae.Handle(ex => { if (ex is HttpResponseException) { Console.WriteLine(ex.Message); Console.WriteLine(((HttpResponseException)ex).GetResponseBodyAsString()); return(true); } return(false); }); } #else catch (HttpResponseException ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.GetResponseBodyAsString()); } #endif catch (Exception ex) { Console.WriteLine(ex); } finally { Console.WriteLine("--- hit <return> to quit ---"); Console.ReadLine(); } }