private static void AuthorizeAppOAuth(DropboxServiceProvider dropboxServiceProvider) { // Authorization without callback url Console.Write("Getting request token..."); OAuthToken oauthToken = dropboxServiceProvider.OAuthOperations.FetchRequestTokenAsync(null, null).Result; Console.WriteLine("Done."); OAuth1Parameters parameters = new OAuth1Parameters(); string authenticateUrl = dropboxServiceProvider.OAuthOperations.BuildAuthorizeUrl( oauthToken.Value, parameters); Console.WriteLine("Redirect the user for authorization to {0}", authenticateUrl); Process.Start(authenticateUrl); Console.Write("Press [Enter] when authorization attempt has succeeded."); Console.ReadLine(); Console.Write("Getting access token..."); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, null); OAuthToken oauthAccessToken = dropboxServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; Console.WriteLine("Done."); string[] oauthData = new string[] { oauthAccessToken.Value, oauthAccessToken.Secret }; File.WriteAllLines(OAuthTokenFileName, oauthData); }
public void AuthenticateCallback(string verifier) { AuthorizedRequestToken authorizedRequestToken = new AuthorizedRequestToken(this.requestOAuthToken, verifier); this.TwitterServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(authorizedRequestToken, null, r => { this.OAuthToken = r.Response; }); }
// GET: /Twitter/Callback public ActionResult Callback(string oauth_verifier) { OAuthToken requestToken = Session["RequestToken"] as OAuthToken; AuthorizedRequestToken authorizedRequestToken = new AuthorizedRequestToken(requestToken, oauth_verifier); OAuthToken token = twitterProvider.OAuthOperations.ExchangeForAccessTokenAsync(authorizedRequestToken, null).Result; Session["AccessToken"] = token; return(View()); }
public ActionResult Callback(string oauth_verifier) { var requestToken = Session["RequestToken"] as OAuthToken; var authorizedRequestToken = new AuthorizedRequestToken(requestToken, oauth_verifier); var token = _readabilityProvider.OAuthOperations.ExchangeForAccessTokenAsync(authorizedRequestToken, null).Result; Session["AccessToken"] = token; return(RedirectToAction("Index")); }
static void Main(string[] args) { try { LinkedInServiceProvider linkedInServiceProvider = new LinkedInServiceProvider(LinkedInApiKey, LinkedInApiSecret); /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication System.Console.Write("Getting request token..."); NameValueCollection parameters = new NameValueCollection(); parameters.Add("scope", "r_basicprofile r_emailaddress"); OAuthToken oauthToken = linkedInServiceProvider.OAuthOperations.FetchRequestTokenAsync("oob", parameters).Result; System.Console.WriteLine("Done"); string authenticateUrl = linkedInServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); System.Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); System.Console.WriteLine("Enter PIN Code from LinkedIn authorization page:"); string pinCode = System.Console.ReadLine(); System.Console.Write("Getting access token..."); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, pinCode); OAuthToken oauthAccessToken = linkedInServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; System.Console.WriteLine("Done"); /* API */ ILinkedIn linkedIn = linkedInServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); LinkedInProfile profile = linkedIn.ProfileOperations.GetUserProfileAsync().Result; string stringResult = linkedIn.RestOperations.GetForObject <string>("skill?name=java&format=json"); JsonValue jsonResult = linkedIn.RestOperations.GetForObject <JsonValue>("skill?name=java&format=json"); } catch (AggregateException ae) { System.Console.WriteLine(ae.GetBaseException()); } catch (Exception ex) { System.Console.WriteLine(ex); } finally { System.Console.WriteLine("--- hit <return> to quit ---"); System.Console.ReadLine(); } }
public ActionResult twittercallback(string oauth_verifier) { OAuthToken requestToken = Session["RequestToken"] as OAuthToken; AuthorizedRequestToken authorizedRequestToken = new AuthorizedRequestToken(requestToken, oauth_verifier); OAuthToken token = twitterProvider.OAuthOperations.ExchangeForAccessTokenAsync(authorizedRequestToken, null).Result; Session["AccessTokenTwitterSecret"] = token.Secret; Session["AccessTokenTwitterValue"] = token.Value; return(Redirect(Constants.WebAPPAddress)); }
public void AuthenticateCallback() { AuthorizedRequestToken authorizedRequestToken = new AuthorizedRequestToken(this.requestOAuthToken, null); this.DropboxServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(authorizedRequestToken, null, r => { this.OAuthToken = r.Response; this.ShowProfile(); }); }
private static void Main(string[] args) { try { var bitbucketServiceProvider = new BitbucketServiceProvider(BitbucketApiKey, BitbucketApiSecret); /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication Console.Write("Getting request token..."); var oauthToken = bitbucketServiceProvider.OAuthOperations.FetchRequestTokenAsync("oob", null).Result; Console.WriteLine("Done"); var authenticateUrl = bitbucketServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); Console.WriteLine("Enter PIN Code from Bitbucket authorization page:"); var pinCode = Console.ReadLine(); Console.Write("Getting access token..."); var requestToken = new AuthorizedRequestToken(oauthToken, pinCode); var oauthAccessToken = bitbucketServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; Console.WriteLine("Done"); /* API */ var bitbucket = bitbucketServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); bitbucket.RestOperations.GetForObjectAsync <JsonValue>("https://api.bitbucket.org/1.0/users/" + Username) .ContinueWith(task => Console.WriteLine("Result: " + task.Result.ToString())); } catch (AggregateException ae) { ae.Handle(ex => { if (ex is BitbucketApiException) { Console.WriteLine(ex.Message); return(true); } return(false); }); } catch (Exception ex) { Console.WriteLine(ex); } finally { Console.WriteLine("--- hit <return> to quit ---"); Console.ReadLine(); } }
private static void Main(string[] args) { try { var meetupServiceProvider = new MeetupServiceProvider(MeetupApiKey, MeetupApiSecret); /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication Console.Write("Getting request token..."); var oauthToken = meetupServiceProvider.OAuthOperations.FetchRequestTokenAsync("oob", null).Result; Console.WriteLine("Done"); var authenticateUrl = meetupServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); Console.WriteLine("Enter PIN Code from Meetup authorization page:"); var pinCode = Console.ReadLine(); Console.Write("Getting access token..."); var requestToken = new AuthorizedRequestToken(oauthToken, pinCode); var oauthAccessToken = meetupServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; Console.WriteLine("Done"); /* API */ var meetup = meetupServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); meetup.RestOperations.GetForObjectAsync <string>("https://api.meetup.com/2/members?member_id=" + MemberId) .ContinueWith(task => Console.WriteLine("Result: " + task.Result)); } catch (AggregateException ae) { ae.Handle(ex => { if (ex is MeetupApiException) { Console.WriteLine(ex.Message); return(true); } return(false); }); } catch (Exception ex) { Console.WriteLine(ex); } finally { Console.WriteLine("--- hit <return> to quit ---"); Console.ReadLine(); } }
// GET: /LinkedIn/Callback public ActionResult Callback(string oauth_verifier) { OAuthToken requestToken = Session["RequestToken"] as OAuthToken; AuthorizedRequestToken authorizedRequestToken = new AuthorizedRequestToken(requestToken, oauth_verifier); OAuthToken token = linkedInProvider.OAuthOperations.ExchangeForAccessTokenAsync(authorizedRequestToken, null).Result; Session["AccessToken"] = token; ILinkedIn linkedInClient = linkedInProvider.GetApi(token.Value, token.Secret); LinkedInProfile profile = linkedInClient.ProfileOperations.GetUserProfileAsync().Result; return(View(profile)); }
// GET: /Dropbox/Callback public ActionResult Callback() { OAuthToken requestToken = Session["RequestToken"] as OAuthToken; AuthorizedRequestToken authorizedRequestToken = new AuthorizedRequestToken(requestToken, null); OAuthToken token = dropboxProvider.OAuthOperations.ExchangeForAccessTokenAsync(authorizedRequestToken, null).Result; Session["TokenValue"] = token.Value; Session["TokenSecret"] = token.Secret; IDropbox dropboxClient = dropboxProvider.GetApi(token.Value, token.Secret); DropboxProfile profile = dropboxClient.GetUserProfileAsync().Result; return(View(profile)); }
//Conectar con API de Twitter mediante PIN para obtener token de acceso //devuelve true si la conexión se ha realizado correctamente public bool obtenerTokenTwitter(ref string resultado, formTwitter form) { try { var auth = new SingleUserAuthorizer { CredentialStore = new SingleUserInMemoryCredentialStore { ConsumerKey = form.consumer_key, ConsumerSecret = form.consumer_secret, AccessToken = form.access_token, AccessTokenSecret = form.access_token_secret } }; context = new TwitterContext(auth); TwitterServiceProvider twitterServiceProvider = new TwitterServiceProvider(form.consumer_key, form.consumer_secret); // Autenticación en Twitter usando código PIN OAuthToken oauthToken = twitterServiceProvider.OAuthOperations.FetchRequestTokenAsync("oob", null).Result; string authenticateUrl = twitterServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); System.Diagnostics.Process.Start(authenticateUrl); string pinCode = ""; InputBox.solicitarTexto("Código PIN", "Introduzca el código PIN obtenido de Twitter:", ref pinCode); // Step 3 - Exchange the Request Token for an Access Token string verifier = pinCode; // <-- This is input into your application by your user AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, pinCode); OAuthToken oauthAccessToken = twitterServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; twitter = twitterServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); resultado = System.DateTime.Now + " " + "Conectado a API de twitter correctamente con PIN"; return(true); } catch (Exception error) { resultado = System.DateTime.Now + " " + "Error al obtener token acceso Twitter: " + error.Message; return(false); } }
private void AuthorizeAppOAuth(DropboxServiceProvider dropboxServiceProvider) { OAuthToken oauthToken = dropboxServiceProvider.OAuthOperations.FetchRequestTokenAsync(null, null).Result; OAuth1Parameters parameters = new OAuth1Parameters(); string authenticateUrl = dropboxServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, parameters); Process.Start(authenticateUrl); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, null); OAuthToken oauthAccessToken = dropboxServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; string[] oauthData = new string[] { oauthAccessToken.Value, oauthAccessToken.Secret }; File.WriteAllLines(OAuthTokenFileName, oauthData); }
public static void DropboxAuthEnd(this SessionState _sessionState) { AuthorizedRequestToken authorizedRequestToken = new AuthorizedRequestToken(AppCache.requestToken, null); AppCache.token = AppCache.dropboxProvider.OAuthOperations.ExchangeForAccessTokenAsync(authorizedRequestToken, null).Result; OAuthTokenEx o = _sessionState.GetOAuthToken().FirstOrDefault(); if (o == null) { o = new OAuthTokenEx(); _sessionState.SaveNewToken(o); } else { dynamic pd = (new JsonSerializer()).Deserialize(new JsonTextReader(new StringReader(AppCache.AESProvider.DecryptString(o.PrivateData)))); if (pd.Secret.Value != AppCache.token.Secret || pd.Value.Value != AppCache.token.Value) { _sessionState.SaveNewToken(o); } } }
public override bool Ejecutar() { try { usuario = FabricaEntidad.CrearUsuario(); DropboxServiceProvider dropbocServiceProvider = new DropboxServiceProvider(DropboxAppKey, DropboxAppSecret, AccessLevel.Full); oauthToken = Comandodrop.Token; AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, null); OAuthToken oauthAccessToken = dropbocServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; (usuario as Clases.Usuario).AccesToken = oauthAccessToken.Value; (usuario as Clases.Usuario).AccesSecret = oauthAccessToken.Secret; IDAOUsuario accion = FabricaDAO.CrearFabricaDeDAO(1).CrearDAOUsuario(); accion.InsertarToken(correo, usuario); if (log.IsInfoEnabled) { log.Info(correo.ToString()); } estado = true; return(estado); } catch (AggregateException ae) { ae.Handle(ex => { if (ex is DropboxApiException) { Console.WriteLine(ex.Message); if (log.IsErrorEnabled) { log.Error(ex.Message, ex); } return(estado = false); } return(estado = false); }); return(estado); } }
public ActionResult Callback(string oauth_verifier) { OAuthToken requestToken = Session.GetTwitterRequestToken(); var authorizedRequestToken = new AuthorizedRequestToken(requestToken, oauth_verifier); OAuthToken token = TwitterProvider .OAuthOperations .ExchangeForAccessTokenAsync(authorizedRequestToken, null) .Result; Session.SetTwitterAccessToken(token); //post action string status = Session.GetTwitterNewStatus(); if (!string.IsNullOrEmpty(status)) { return(SendUpdate(new StatusViewModel { Status = status }, token)); } return(Content("Yes")); }
static void Main(string[] args) { #if NET_4_0 try { TwitterServiceProvider twitterServiceProvider = new TwitterServiceProvider(TwitterConsumerKey, TwitterConsumerSecret); /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication Console.Write("Getting request token..."); OAuthToken oauthToken = twitterServiceProvider.OAuthOperations.FetchRequestTokenAsync("oob", null).Result; Console.WriteLine("Done"); string authenticateUrl = twitterServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); Console.WriteLine("Enter PIN Code from Twitter authorization page:"); string pinCode = Console.ReadLine(); Console.Write("Getting access token..."); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, pinCode); OAuthToken oauthAccessToken = twitterServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; Console.WriteLine("Done"); /* API */ ITwitter twitter = twitterServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); Console.WriteLine("Enter your status message:"); string message = Console.ReadLine(); twitter.UpdateStatusAsync(message).Wait(); Console.WriteLine("Status updated!"); } catch (AggregateException ae) { ae.Handle(ex => { if (ex is HttpResponseException) { Console.WriteLine(ex.Message); Console.WriteLine(((HttpResponseException)ex).GetResponseBodyAsString()); return(true); } return(false); }); } #else try { TwitterServiceProvider twitterServiceProvider = new TwitterServiceProvider(TwitterConsumerKey, TwitterConsumerSecret); /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication Console.Write("Getting request token..."); OAuthToken oauthToken = twitterServiceProvider.OAuthOperations.FetchRequestToken("oob", null); Console.WriteLine("Done"); string authenticateUrl = twitterServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); Console.WriteLine("Enter PIN Code from Twitter authorization page:"); string pinCode = Console.ReadLine(); Console.Write("Getting access token..."); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, pinCode); OAuthToken oauthAccessToken = twitterServiceProvider.OAuthOperations.ExchangeForAccessToken(requestToken, null); Console.WriteLine("Done"); /* API */ ITwitter twitter = twitterServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); Console.WriteLine("Enter your status message:"); string message = Console.ReadLine(); twitter.UpdateStatus(message); Console.WriteLine("Status updated!"); } 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 { TwitterServiceProvider twitterServiceProvider = new TwitterServiceProvider(TwitterConsumerKey, TwitterConsumerSecret); #if NET_4_0 /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication Console.Write("Getting request token..."); OAuthToken oauthToken = twitterServiceProvider.OAuthOperations.FetchRequestTokenAsync("oob", null).Result; Console.WriteLine("Done"); string authenticateUrl = twitterServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); Console.WriteLine("Enter PIN Code from Twitter authorization page:"); string pinCode = Console.ReadLine(); Console.Write("Getting access token..."); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, pinCode); OAuthToken oauthAccessToken = twitterServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; Console.WriteLine("Done"); /* API */ ITwitter twitter = twitterServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); twitter.UserOperations.GetUserProfileAsync("brbaia") .ContinueWith(task => Console.WriteLine("brbaia is " + task.Result.Name)); // Use step by step debugging /* * // IBlockOperations * TwitterProfile blockedProfile = twitter.BlockOperations.BlockAsync("brbaia").Result; * CursoredList<TwitterProfile> blockedIserProfiles = twitter.BlockOperations.GetBlockedUsersAsync().Result; * CursoredList<long> blockedUserIds = twitter.BlockOperations.GetBlockedUserIdsAsync().Result; * blockedProfile = twitter.BlockOperations.UnblockAsync(blockedProfile.ID).Result; * * // IDirectMessageOperations * IList<DirectMessage> directMessagesSent = twitter.DirectMessageOperations.GetDirectMessagesSentAsync().Result; * IList<DirectMessage> directMessagesReceived = twitter.DirectMessageOperations.GetDirectMessagesReceivedAsync().Result; * DirectMessage directMessage = twitter.DirectMessageOperations.SendDirectMessageAsync("brbaia", "Hi from #Spring.NET Social Twitter!").Result; * directMessage = twitter.DirectMessageOperations.GetDirectMessageAsync(directMessage.ID).Result; * directMessage = twitter.DirectMessageOperations.DeleteDirectMessageAsync(directMessage.ID).Result; * * // IFriendOperations * CursoredList<TwitterProfile> followers = twitter.FriendOperations.GetFollowersAsync().Result; * CursoredList<TwitterProfile> friends = twitter.FriendOperations.GetFriendsAsync().Result; * TwitterProfile newFriend = twitter.FriendOperations.FollowAsync("brbaia").Result; * twitter.FriendOperations.EnableNotificationsAsync("brbaia").Wait(); * * // IGeoOperations * IList<Place> places = twitter.GeoOperations.SearchAsync(37.7821120598956, -122.400612831116).Result; * * // IListOperations * IList<UserList> myLists = twitter.ListOperations.GetListsAsync().Result; * IList<UserList> s2Lists = twitter.ListOperations.GetListsAsync("SpringSource").Result; * IList<TwitterProfile> listMembers = twitter.ListOperations.GetListMembersAsync(s2Lists[0].ID).Result; * IList<TwitterProfile> listSubscribers = twitter.ListOperations.GetListSubscribersAsync(s2Lists[0].ID).Result; * IList<Tweet> listTweets = twitter.ListOperations.GetListStatusesAsync(s2Lists[0].ID).Result; * CursoredList<UserList> listMemberships = twitter.ListOperations.GetMembershipsAsync(listMembers[0].ID).Result; * UserList myNewList = twitter.ListOperations.CreateListAsync("My list", "List description", true).Result; * twitter.ListOperations.AddToListAsync(myNewList.ID, "brbaia").Wait(); * twitter.ListOperations.DeleteListAsync(myNewList.ID).Wait(); * * // ISearchOperations * SearchResults searchResults = twitter.SearchOperations.SearchAsync("#spring").Result; * SavedSearch savedSearch = twitter.SearchOperations.CreateSavedSearchAsync("@brbaia").Result; * IList<SavedSearch> savedSearches = twitter.SearchOperations.GetSavedSearchesAsync().Result; * twitter.SearchOperations.DeleteSavedSearchAsync(savedSearch.ID).Wait(); * Trends globalTrends = twitter.SearchOperations.GetTrendsAsync(1).Result; * * // ITimelineOperations * Tweet tweet = twitter.TimelineOperations.UpdateStatusAsync( * "Hi from #Spring.NET Social Twitter! http://bit.ly/x2rvlC", new AssemblyResource("Image.png", typeof(Program))).Result; * twitter.TimelineOperations.DeleteStatusAsync(tweet.ID).Wait(); * IList<Tweet> homeTimeline = twitter.TimelineOperations.GetHomeTimelineAsync().Result; * IList<Tweet> userTimeline = twitter.TimelineOperations.GetUserTimelineAsync().Result; * IList<Tweet> mentions = twitter.TimelineOperations.GetMentionsAsync().Result; * IList<Tweet> retweetsOfMe = twitter.TimelineOperations.GetRetweetsOfMeAsync().Result; * IList<Tweet> retweets = twitter.TimelineOperations.GetRetweetsAsync(homeTimeline[0].ID).Result; * IList<Tweet> favorites = twitter.TimelineOperations.GetFavoritesAsync().Result; * * // IUserOperations * TwitterProfile userProfile = twitter.UserOperations.GetUserProfileAsync().Result; * IList<TwitterProfile> searchProfiles = twitter.UserOperations.SearchForUsersAsync("spring").Result; * IList<RateLimitStatus> limits = twitter.UserOperations.GetRateLimitStatusAsync("users", "search", "statuses").Result; */ } catch (AggregateException ae) { ae.Handle(ex => { if (ex is TwitterApiException) { Console.WriteLine(ex.Message); return(true); } return(false); }); } #else /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication Console.Write("Getting request token..."); OAuthToken oauthToken = twitterServiceProvider.OAuthOperations.FetchRequestToken("oob", null); Console.WriteLine("Done"); string authenticateUrl = twitterServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); Console.WriteLine("Enter PIN Code from Twitter authorization page:"); string pinCode = Console.ReadLine(); Console.Write("Getting access token..."); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, pinCode); OAuthToken oauthAccessToken = twitterServiceProvider.OAuthOperations.ExchangeForAccessToken(requestToken, null); Console.WriteLine("Done"); /* API */ ITwitter twitter = twitterServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); TwitterProfile profile = twitter.UserOperations.GetUserProfile("brbaia"); Console.WriteLine("brbaia is " + profile.Name); // Use step by step debugging /* * // IBlockOperations * TwitterProfile blockedProfile = twitter.BlockOperations.Block("brbaia"); * CursoredList<TwitterProfile> blockedIserProfiles = twitter.BlockOperations.GetBlockedUsers(); * CursoredList<long> blockedUserIds = twitter.BlockOperations.GetBlockedUserIds(); * blockedProfile = twitter.BlockOperations.Unblock(blockedProfile.ID); * * // IDirectMessageOperations * IList<DirectMessage> directMessagesSent = twitter.DirectMessageOperations.GetDirectMessagesSent(); * IList<DirectMessage> directMessagesReceived = twitter.DirectMessageOperations.GetDirectMessagesReceived(); * DirectMessage directMessage = twitter.DirectMessageOperations.SendDirectMessage("brbaia", "Hi from #Spring.NET Social Twitter!"); * directMessage = twitter.DirectMessageOperations.GetDirectMessage(directMessage.ID); * directMessage = twitter.DirectMessageOperations.DeleteDirectMessage(directMessage.ID); * * // IFriendOperations * CursoredList<TwitterProfile> followers = twitter.FriendOperations.GetFollowers(); * CursoredList<TwitterProfile> friends = twitter.FriendOperations.GetFriends(); * TwitterProfile newFriend = twitter.FriendOperations.Follow("brbaia"); * twitter.FriendOperations.EnableNotifications("brbaia"); * * // IGeoOperations * IList<Place> places = twitter.GeoOperations.Search(37.7821120598956, -122.400612831116); * * // IListOperations * IList<UserList> myLists = twitter.ListOperations.GetLists(); * IList<UserList> s2Lists = twitter.ListOperations.GetLists("SpringSource"); * IList<TwitterProfile> listMembers = twitter.ListOperations.GetListMembers(s2Lists[0].ID); * IList<TwitterProfile> listSubscribers = twitter.ListOperations.GetListSubscribers(s2Lists[0].ID); * IList<Tweet> listTweets = twitter.ListOperations.GetListStatuses(s2Lists[0].ID); * CursoredList<UserList> listMemberships = twitter.ListOperations.GetMemberships(listMembers[0].ID); * UserList myNewList = twitter.ListOperations.CreateList("My list", "List description", true); * twitter.ListOperations.AddToList(myNewList.ID, "brbaia"); * twitter.ListOperations.DeleteList(myNewList.ID); * * // ISearchOperations * SearchResults searchResults = twitter.SearchOperations.Search("#spring"); * SavedSearch savedSearch = twitter.SearchOperations.CreateSavedSearch("@brbaia"); * IList<SavedSearch> savedSearches = twitter.SearchOperations.GetSavedSearches(); * twitter.SearchOperations.DeleteSavedSearch(savedSearch.ID); * Trends globalTrends = twitter.SearchOperations.GetTrends(1); * * // ITimelineOperations * Tweet tweet = twitter.TimelineOperations.UpdateStatus( * "Hi from #Spring.NET Social Twitter! http://bit.ly/x2rvlC", new AssemblyResource("Image.png", typeof(Program))); * twitter.TimelineOperations.DeleteStatus(tweet.ID); * IList<Tweet> homeTimeline = twitter.TimelineOperations.GetHomeTimeline(); * IList<Tweet> userTimeline = twitter.TimelineOperations.GetUserTimeline(); * IList<Tweet> mentions = twitter.TimelineOperations.GetMentions(); * IList<Tweet> retweetsOfMe = twitter.TimelineOperations.GetRetweetsOfMe(); * IList<Tweet> retweets = twitter.TimelineOperations.GetRetweets(homeTimeline[0].ID); * IList<Tweet> favorites = twitter.TimelineOperations.GetFavorites(); * * // IUserOperations * TwitterProfile userProfile = twitter.UserOperations.GetUserProfile(); * IList<TwitterProfile> searchProfiles = twitter.UserOperations.SearchForUsers("spring"); * IList<RateLimitStatus> limits = twitter.UserOperations.GetRateLimitStatus("users", "search", "statuses"); */ }
private static void Main(string[] args) { try { var readabilityServiceProvider = new ReadabilityServiceProvider(ReadabilityApiKey, ReadabilityApiSecret); /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication Console.Write("Getting request token..."); var oauthToken = readabilityServiceProvider.OAuthOperations.FetchRequestTokenAsync("oob", null).Result; Console.WriteLine("Done"); var authenticateUrl = readabilityServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); Console.WriteLine("Enter PIN Code from Readability authorization page:"); var pinCode = Console.ReadLine(); Console.Write("Getting access token..."); var requestToken = new AuthorizedRequestToken(oauthToken, pinCode); var oauthAccessToken = readabilityServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; Console.WriteLine("Done"); /* API */ var readability = readabilityServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); readability.UserOperations.GetUserAsync() .ContinueWith(task => Console.WriteLine("Username: "******"All bookmarks: " + task.Result.Bookmarks.Count)); readability.BookmarkOperations.GetReadingListBookmarksAsync(1, 50) .ContinueWith(task => Console.WriteLine("Reading list bookmarks: " + task.Result.Bookmarks.Count)); readability.BookmarkOperations.GetFavoriteBookmarksAsync(1, 50) .ContinueWith(task => Console.WriteLine("Favorite bookmarks: " + task.Result.Bookmarks.Count)); readability.BookmarkOperations.GetArchivedBookmarksAsync(1, 50) .ContinueWith(task => Console.WriteLine("Archived bookmarks: " + task.Result.Bookmarks.Count)); } catch (AggregateException ae) { ae.Handle(ex => { if (ex is ReadabilityApiException) { Console.WriteLine(ex.Message); return(true); } return(false); }); } catch (Exception ex) { Console.WriteLine(ex); } finally { Console.WriteLine("--- hit <return> to quit ---"); Console.ReadLine(); } }
static void Main(string[] args) { try { LinkedInServiceProvider linkedInServiceProvider = new LinkedInServiceProvider(LinkedInApiKey, LinkedInApiSecret); #if NET_4_0 /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication Console.Write("Getting request token..."); NameValueCollection parameters = new NameValueCollection(); //parameters.Add("scope", "r_basicprofile r_emailaddress"); OAuthToken oauthToken = linkedInServiceProvider.OAuthOperations.FetchRequestTokenAsync("oob", parameters).Result; Console.WriteLine("Done"); string authenticateUrl = linkedInServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); Console.WriteLine("Enter PIN Code from LinkedIn authorization page:"); string pinCode = Console.ReadLine(); Console.Write("Getting access token..."); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, pinCode); OAuthToken oauthAccessToken = linkedInServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; Console.WriteLine("Done"); /* API */ ILinkedIn linkedIn = linkedInServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); LinkedInProfile profile = linkedIn.ProfileOperations.GetUserProfileAsync().Result; Console.WriteLine("Authenticated user is " + profile.FirstName + " " + profile.LastName); // Use step by step debugging /* * LinkedInProfile profileById = linkedIn.ProfileOperations.GetUserProfileByIdAsync("x9HPDDi8DL").Result; * LinkedInProfile profileByPublicUrl = linkedIn.ProfileOperations.GetUserProfileByPublicUrlAsync("http://www.linkedin.com/in/bbaia").Result; * LinkedInProfiles connections = linkedIn.ConnectionOperations.GetConnectionsAsync().Result; // Requires 'r_network' permission * NetworkStatistics statistics = linkedIn.ConnectionOperations.GetNetworkStatisticsAsync().Result; // Requires 'rw_nus' permission * GroupMemberships groups = linkedIn.GroupOperations.GetGroupMembershipsAsync().Result; // Requires 'rw_groups' permission */ // Consume LinkedIn endpoints that are not covered by the API binding string stringResult = linkedIn.RestOperations.GetForObjectAsync <string>("company-search?keywords=SpringSource&format=json").Result; JsonValue jsonResult = linkedIn.RestOperations.GetForObjectAsync <JsonValue>("job-search?job-title=LinkedIn&country-code=FR&format=json").Result; } catch (AggregateException ae) { ae.Handle(ex => { // TODO: Update after error handler implementation if (ex is Spring.Rest.Client.HttpResponseException) { Console.WriteLine(ex.Message); Console.WriteLine(((Spring.Rest.Client.HttpResponseException)ex).GetResponseBodyAsString()); return(true); } return(false); }); } #else /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication Console.Write("Getting request token..."); OAuthToken oauthToken = linkedInServiceProvider.OAuthOperations.FetchRequestToken("oob", null); Console.WriteLine("Done"); string authenticateUrl = linkedInServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); Console.WriteLine("Enter PIN Code from LinkedIn authorization page:"); string pinCode = Console.ReadLine(); Console.Write("Getting access token..."); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, pinCode); OAuthToken oauthAccessToken = linkedInServiceProvider.OAuthOperations.ExchangeForAccessToken(requestToken, null); Console.WriteLine("Done"); /* API */ ILinkedIn linkedIn = linkedInServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); LinkedInProfile profile = linkedIn.ProfileOperations.GetUserProfile(); Console.WriteLine("Authenticated user is " + profile.FirstName + " " + profile.LastName); // Use step by step debugging /* * LinkedInProfile profileById = linkedIn.ProfileOperations.GetUserProfileById("xO3SEJSVZN"); * LinkedInProfile profileByPublicUrl = linkedIn.ProfileOperations.GetUserProfileByPublicUrl("http://www.linkedin.com/in/bbaia"); * LinkedInProfiles connections = linkedIn.ConnectionOperations.GetConnections(); // Requires 'r_network' permission * NetworkStatistics statistics = linkedIn.ConnectionOperations.GetNetworkStatistics(); // Requires 'rw_nus' permission */ // Consume LinkedIn endpoints that are not covered by the API binding /* * string stringResult = linkedIn.RestOperations.GetForObject<string>("company-search?keywords=SpringSource&format=json"); * JsonValue jsonResult = linkedIn.RestOperations.GetForObject<JsonValue>("job-search?job-title=LinkedIn&country-code=FR&format=json"); */ }
static void Main(string[] args) { try { DropboxServiceProvider dropboxServiceProvider = new DropboxServiceProvider(DropboxAppKey, DropboxAppSecret, AccessLevel.Full); #if NET_4_0 /* OAuth 1.0 'dance' */ // Authorization without callback url Console.Write("Getting request token..."); OAuthToken oauthToken = dropboxServiceProvider.OAuthOperations.FetchRequestTokenAsync(null, null).Result; Console.WriteLine("Done"); OAuth1Parameters parameters = new OAuth1Parameters(); //parameters.Add("locale", CultureInfo.CurrentUICulture.IetfLanguageTag); // for a localized version of the authorization website string authenticateUrl = dropboxServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, parameters); Console.WriteLine("Redirect user for authorization"); Process.Start(authenticateUrl); Console.Write("Press any key when authorization attempt has succeeded"); Console.ReadLine(); Console.Write("Getting access token..."); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, null); OAuthToken oauthAccessToken = dropboxServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; Console.WriteLine("Done"); /* API */ IDropbox dropbox = dropboxServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); //dropbox.Locale = CultureInfo.CurrentUICulture.IetfLanguageTag; DropboxProfile profile = dropbox.GetUserProfileAsync().Result; Console.WriteLine("Hi " + profile.DisplayName + "!"); // Use step by step debugging, or not /* * Entry createFolderEntry = dropbox.CreateFolderAsync("Spring Social").Result; * Entry uploadFileEntry = dropbox.UploadFileAsync( * new AssemblyResource("assembly://Spring.ConsoleQuickStart/Spring.ConsoleQuickStart/File.txt"), * "/Spring Social/File.txt", true, null, CancellationToken.None).Result; * Entry copyEntry = dropbox.CopyAsync("Spring Social/File.txt", "Spring Social/File_copy.txt").Result; * Entry deleteEntry = dropbox.DeleteAsync("Spring Social/File.txt").Result; * Entry moveEntry = dropbox.MoveAsync("Spring Social/File_copy.txt", "Spring Social/File.txt").Result; * dropbox.DownloadFileAsync("Spring Social/File.txt") * .ContinueWith(task => * { * Console.WriteLine("File '{0}' downloaded ({1})", task.Result.Metadata.Path, task.Result.Metadata.Size); * // Save file to "C:\Spring Social.txt" * using (FileStream fileStream = new FileStream(@"C:\Spring Social.txt", FileMode.Create)) * { * fileStream.Write(task.Result.Content, 0, task.Result.Content.Length); * } * }); * Entry folderMetadata = dropbox.GetMetadataAsync("Spring Social").Result; * IList<Entry> revisionsEntries = dropbox.GetRevisionsAsync("Spring Social/File.txt").Result; * Entry restoreEntry = dropbox.RestoreAsync("Spring Social/File.txt", revisionsEntries[2].Revision).Result; * IList<Entry> searchResults = dropbox.SearchAsync("Spring Social/", ".txt").Result; * DropboxLink shareableLink = dropbox.GetShareableLinkAsync("Spring Social/File.txt").Result; * DropboxLink mediaLink = dropbox.GetMediaLinkAsync("Spring Social/File.txt").Result; * Entry uploadImageEntry = dropbox.UploadFileAsync( * new AssemblyResource("assembly://Spring.ConsoleQuickStart/Spring.ConsoleQuickStart/Image.png"), * "/Spring Social/Image.png", true, null, CancellationToken.None).Result; * dropbox.DownloadThumbnailAsync("Spring Social/Image.png", ThumbnailFormat.Png, ThumbnailSize.Medium) * .ContinueWith(task => * { * Console.WriteLine("Thumbnail '{0}' downloaded ({1})", task.Result.Metadata.Path, task.Result.Metadata.Size); * // Save file to "C:\Thumbnail_Medium.png" * using (FileStream fileStream = new FileStream(@"C:\Thumbnail_Medium.png", FileMode.Create)) * { * fileStream.Write(task.Result.Content, 0, task.Result.Content.Length); * } * }); */ } catch (AggregateException ae) { ae.Handle(ex => { if (ex is DropboxApiException) { Console.WriteLine(ex.Message); return(true); } return(false); }); } #else /* OAuth 1.0 'dance' */ // Authorization without callback url Console.Write("Getting request token..."); OAuthToken oauthToken = dropboxServiceProvider.OAuthOperations.FetchRequestToken(null, null); Console.WriteLine("Done"); OAuth1Parameters parameters = new OAuth1Parameters(); //parameters.Add("locale", CultureInfo.CurrentUICulture.IetfLanguageTag); // for a localized version of the authorization website string authenticateUrl = dropboxServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, parameters); Console.WriteLine("Redirect user for authorization"); Process.Start(authenticateUrl); Console.Write("Press any key when authorization attempt has succeeded"); Console.ReadLine(); Console.Write("Getting access token..."); AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, null); OAuthToken oauthAccessToken = dropboxServiceProvider.OAuthOperations.ExchangeForAccessToken(requestToken, null); Console.WriteLine("Done"); /* API */ IDropbox dropbox = dropboxServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); //dropbox.Locale = CultureInfo.CurrentUICulture.IetfLanguageTag; DropboxProfile profile = dropbox.GetUserProfile(); Console.WriteLine("Hi " + profile.DisplayName + "!"); // Use step by step debugging, or not /* * Entry createFolderEntry = dropbox.CreateFolder("Spring Social"); * Entry uploadFileEntry = dropbox.UploadFile( * new AssemblyResource("assembly://Spring.ConsoleQuickStart/Spring.ConsoleQuickStart/File.txt"), * "/Spring Social/File.txt", true, null); * Entry copyEntry = dropbox.Copy("Spring Social/File.txt", "Spring Social/File_copy.txt"); * Entry deleteEntry = dropbox.Delete("Spring Social/File.txt"); * Entry moveEntry = dropbox.Move("Spring Social/File_copy.txt", "Spring Social/File.txt"); * var fileCanceler = dropbox.DownloadFileAsync("Spring Social/File.txt", * r => * { * Console.WriteLine("File '{0}' downloaded ({1})", r.Response.Metadata.Path, r.Response.Metadata.Size); * // Save file to "C:\Spring Social.txt" * using (FileStream fileStream = new FileStream(@"C:\Spring Social.txt", FileMode.Create)) * { * fileStream.Write(r.Response.Content, 0, r.Response.Content.Length); * } * }); * Entry folderMetadata = dropbox.GetMetadata("Spring Social"); * IList<Entry> revisionsEntries = dropbox.GetRevisions("Spring Social/File.txt"); * Entry restoreEntry = dropbox.Restore("Spring Social/File.txt", revisionsEntries[2].Revision); * IList<Entry> searchResults = dropbox.Search("Spring Social/", ".txt"); * DropboxLink shareableLink = dropbox.GetShareableLink("Spring Social/File.txt"); * DropboxLink mediaLink = dropbox.GetMediaLink("Spring Social/File.txt"); * Entry uploadImageEntry = dropbox.UploadFile( * new AssemblyResource("assembly://Spring.ConsoleQuickStart/Spring.ConsoleQuickStart/Image.png"), * "/Spring Social/Image.png", true, null); * var thumbnailCanceler = dropbox.DownloadThumbnailAsync("Spring Social/Image.png", ThumbnailFormat.Png, ThumbnailSize.Medium, * r => * { * Console.WriteLine("Thumbnail '{0}' downloaded ({1})", r.Response.Metadata.Path, r.Response.Metadata.Size); * // Save file to "C:\Thumbnail_Medium.png" * using (FileStream fileStream = new FileStream(@"C:\Thumbnail_Medium.png", FileMode.Create)) * { * fileStream.Write(r.Response.Content, 0, r.Response.Content.Length); * } * }); */ }
private static void Main(string[] args) { try { var geeklistServiceProvider = new GeeklistServiceProvider(GeeklistApiKey, GeeklistApiSecret); /* OAuth 'dance' */ // Authentication using Out-of-band/PIN Code Authentication Console.Write("Getting request token..."); var oauthToken = geeklistServiceProvider.OAuthOperations.FetchRequestTokenAsync("oob", null).Result; Console.WriteLine("Done"); var authenticateUrl = geeklistServiceProvider.OAuthOperations.BuildAuthorizeUrl(oauthToken.Value, null); Console.WriteLine("Redirect user for authentication: " + authenticateUrl); Process.Start(authenticateUrl); Console.WriteLine("Enter PIN Code from Geeklist authorization page:"); var pinCode = Console.ReadLine(); Console.Write("Getting access token..."); var requestToken = new AuthorizedRequestToken(oauthToken, pinCode); var oauthAccessToken = geeklistServiceProvider.OAuthOperations.ExchangeForAccessTokenAsync(requestToken, null).Result; Console.WriteLine("Done"); /* API */ var geeklist = geeklistServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); geeklist.UserOperations.GetUserAsync() .ContinueWith(task => Console.WriteLine("Username: "******"Activities: " + task.Result.Activities.Count)); geeklist.CardOperations.GetUserCardsAsync() .ContinueWith(task => Console.WriteLine("Cards: " + task.Result.CardDetails.TotalCards)); geeklist.FollowerOperations.GetUserFollowersAsync() .ContinueWith(task => Console.WriteLine("Followers: " + task.Result.FollowersDetails.TotalFollowers)); geeklist.FollowingOperations.GetUserFollowingAsync() .ContinueWith(task => Console.WriteLine("Following: " + task.Result.FollowingDetails.TotalFollowing)); geeklist.MicroOperations.GetUserMicrosAsync() .ContinueWith(task => Console.WriteLine("Micros: " + task.Result.MicrosDetails.TotalMicros)); } catch (AggregateException ae) { ae.Handle(ex => { if (ex is GeeklistApiException) { Console.WriteLine(ex.Message); return(true); } return(false); }); } catch (Exception ex) { Console.WriteLine(ex); } finally { Console.WriteLine("--- hit <return> to quit ---"); Console.ReadLine(); } }
private void Worker() { Interface.Oxide.LogInfo("[DropBox] Initialized"); _Settings = _DataFileSystem.ReadObject <Settings>(Path.Combine(_ConfigDirectory, "DropBox")); if (_Settings.FileList == null) { _Settings = new Settings(); _Settings.BackupOxideConfig = true; _Settings.BackupOxideData = true; _Settings.BackupOxideLang = true; _Settings.BackupOxideLogs = true; _Settings.BackupOxidePlugins = true; _Settings.FileList = new List <string>(); _Settings.UserToken = ""; _Settings.UserSecret = ""; _Settings.BackupName = "Oxide DropBox Extension"; _Settings.BackupInterval = 3600; _Settings.DropboxApi = new Dictionary <string, string>(); _Settings.DropboxApi.Add("DropboxAppKey", ""); _Settings.DropboxApi.Add("DropboxAppSecret", ""); _DataFileSystem.WriteObject <Settings>(Path.Combine(_ConfigDirectory, "DropBox"), _Settings); } if (_Settings.BackupInterval < 3600) { Interface.Oxide.LogError("[DropBox] You can't set backup interval lower than 1 hour."); _Settings.BackupInterval = 3600; _DataFileSystem.WriteObject <Settings>(Path.Combine(_ConfigDirectory, "DropBox"), _Settings); } if ((string.IsNullOrEmpty(_Settings.DropboxApi["DropboxAppKey"])) || (string.IsNullOrEmpty(_Settings.DropboxApi["DropboxAppSecret"]))) { _running = false; Interface.Oxide.LogWarning("[DropBox] To able to use DropBox Extension you need to set DropboxAppKey and DropboxAppSecret in config file."); } if (_running) { DropboxServiceProvider dropboxServiceProvider = new DropboxServiceProvider(_Settings.DropboxApi["DropboxAppKey"], _Settings.DropboxApi["DropboxAppSecret"], AccessLevel.Full); OAuthToken oauthAccessToken = null; bool Authorized = false; IDropbox dropbox = null; do { if ((_running) && (string.IsNullOrEmpty(_Settings.UserToken) || string.IsNullOrEmpty(_Settings.UserSecret))) { Interface.Oxide.LogInfo("[DropBox] Getting request token..."); OAuthToken oauthToken = dropboxServiceProvider.OAuthOperations.FetchRequestToken(null, null); Interface.Oxide.LogInfo("[DropBox] Done"); OAuth1Parameters parameters = new OAuth1Parameters(); string authenticateUrl = dropboxServiceProvider.OAuthOperations.BuildAuthenticateUrl(oauthToken.Value, parameters); Interface.Oxide.LogInfo("[DropBox] Redirect user for authorization"); Interface.Oxide.LogInfo("[DropBox] {0}", authenticateUrl); while ((_running) && (Authorized == false)) { try { AuthorizedRequestToken requestToken = new AuthorizedRequestToken(oauthToken, null); oauthAccessToken = dropboxServiceProvider.OAuthOperations.ExchangeForAccessToken(requestToken, null); Authorized = true; _Settings.UserToken = oauthAccessToken.Value; _Settings.UserSecret = oauthAccessToken.Secret; _DataFileSystem.WriteObject <Settings>(Path.Combine(_ConfigDirectory, "DropBox"), _Settings); } catch { Thread.Sleep(5000); } } } else if (_running) { oauthAccessToken = new OAuthToken(_Settings.UserToken, _Settings.UserSecret); } if (_running) { try { Interface.Oxide.LogInfo("[DropBox] Authorizing"); dropbox = dropboxServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret); Interface.Oxide.LogInfo("[DropBox] Authorization Succeed"); Authorized = true; } catch { Interface.Oxide.LogWarning("[DropBox] Authorization Failed"); _Settings.UserToken = ""; _Settings.UserSecret = ""; _DataFileSystem.WriteObject <Settings>(Path.Combine(_ConfigDirectory, "DropBox"), _Settings); Authorized = false; } } } while ((_running) && (Authorized == false)); if ((_running) && (dropbox != null) && (Authorized == true)) { DropboxProfile profile = dropbox.GetUserProfile(); Interface.Oxide.LogInfo("[DropBox] Current Dropbox User : {0}({1})", profile.DisplayName, profile.Email); DateTime NextUpdate = DateTime.Now.AddSeconds(60); Interface.Oxide.LogInfo("[DropBox] First Backup : {0}", NextUpdate.ToString()); while (_running) { if (DateTime.Now < NextUpdate) { Thread.Sleep(1000); } else { string BackUpRoot = Path.Combine(Interface.Oxide.RootDirectory, "OxideExtBackup"); string OxideBackUpRoot = Path.Combine(BackUpRoot, "Oxide"); string FileBackUpRoot = Path.Combine(BackUpRoot, "Files"); Directory.CreateDirectory(BackUpRoot); DirectoryInfo OxideExtBackup = new DirectoryInfo(BackUpRoot); foreach (FileInfo file in OxideExtBackup.GetFiles()) { file.Delete(); } foreach (DirectoryInfo subDirectory in OxideExtBackup.GetDirectories()) { subDirectory.Delete(true); } Directory.CreateDirectory(OxideBackUpRoot); Directory.CreateDirectory(FileBackUpRoot); if (_Settings.BackupOxideConfig) { DirectoryCopy(Interface.Oxide.ConfigDirectory, Path.Combine(OxideBackUpRoot, "config"), true); } if (_Settings.BackupOxideData) { DirectoryCopy(Interface.Oxide.DataDirectory, Path.Combine(OxideBackUpRoot, "data"), true); } if (_Settings.BackupOxideLang) { DirectoryCopy(Interface.Oxide.LangDirectory, Path.Combine(OxideBackUpRoot, "lang"), true); } if (_Settings.BackupOxideLogs) { DirectoryCopy(Interface.Oxide.LogDirectory, Path.Combine(OxideBackUpRoot, "logs"), true); } if (_Settings.BackupOxidePlugins) { DirectoryCopy(Interface.Oxide.PluginDirectory, Path.Combine(OxideBackUpRoot, "plugins"), true); } foreach (string Current in _Settings.FileList) { if (!string.IsNullOrEmpty(Current)) { string CurrentPath = Path.GetFullPath(Path.Combine(Interface.Oxide.RootDirectory, Current)); if (!CurrentPath.StartsWith(Interface.Oxide.RootDirectory, StringComparison.Ordinal)) { Interface.Oxide.LogError("[DropBox] You may only access game releated directories..."); } else if ((File.GetAttributes(CurrentPath) & FileAttributes.Directory) == FileAttributes.Directory) { if (CurrentPath != Interface.Oxide.RootDirectory) { DirectoryCopy(CurrentPath, Path.Combine(FileBackUpRoot, new DirectoryInfo(CurrentPath).Name), true); } } else { File.Copy(CurrentPath, Path.Combine(FileBackUpRoot, new FileInfo(CurrentPath).Name)); } } } string FileName = string.Format("{0}.{1}.{2}.{3}.{4}.{5}.zip", DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, DateTime.UtcNow.Second); FileStream fsOut = File.Create(Path.Combine(Interface.Oxide.RootDirectory, FileName)); ZipOutputStream zipStream = new ZipOutputStream(fsOut); zipStream.SetLevel(3); string folderName = Path.Combine(Interface.Oxide.RootDirectory, "OxideExtBackup"); int folderOffset = folderName.Length + (folderName.EndsWith("\\") ? 0 : 1); CompressFolder(folderName, zipStream, folderOffset); zipStream.IsStreamOwner = true; zipStream.Close(); Interface.Oxide.LogInfo("[DropBox] Uploading..."); Entry uploadFileEntry = dropbox.UploadFile(new FileResource(Path.Combine(Interface.Oxide.RootDirectory, FileName)), string.Format("/{0}/{1}", _Settings.BackupName, FileName), true, null); Directory.Delete(folderName, true); File.Delete(Path.Combine(Interface.Oxide.RootDirectory, FileName)); NextUpdate = NextUpdate.AddSeconds(_Settings.BackupInterval); Interface.Oxide.LogInfo("[DropBox] Uploading Complated.Next Backup : {0}", NextUpdate.ToString()); } } } } }