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"));
        }
Example #5
0
        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();
            });
        }
Example #8
0
        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();
            }
        }
Example #9
0
        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();
            }
        }
Example #10
0
        // 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);
            }
        }
Example #13
0
        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);
        }
Example #14
0
        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"));
        }
Example #17
0
        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");
 */
            }
Example #19
0
        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");
 */
            }
Example #21
0
        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);
 *                      }
 *                  });
 */
            }
Example #22
0
        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();
            }
        }
Example #23
0
        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());
                        }
                    }
                }
            }
        }