예제 #1
0
        public YahooApiService()
        {
            var nameValueCollection = new NameValueCollection();

            nameValueCollection.Add("oauth_session_handle", "AEq.oFgczmkY.JCTRgw.QyWgp9lGHMTyB_j9JQJA3gV__pWdZyI-");
            nameValueCollection.Add("oauth_expires_in", "3600");
            nameValueCollection.Add("oauth_authorization_expires_in", "659667716");
            nameValueCollection.Add("xoauth_yahoo_guid", "JUGBTYOWS5TV3CMVFBHUWYZR5U");

            Token                     = new AccessToken();
            Token.Token               = "A=026in7zpoCwBeNeFa_aL62_T2VuP6cHOUMk9xvSpau2mJvDA.csfLrRiiakmVqWHzZ_NdBqWG4rz7_2yd1CDLXvTOu9CXkpbfSpYEL4F3sDLCWsDlCIPpVl8WGmug27WkI7mczgWN68UJPJs52ToiA.Njgah8Is9GBzKncVec7G557KDh07tilu8S9Yq9TO_EnSfwtqIpw6scNozpfmIVHZ3HQnV5NdWB9Qj3SjCIEuNUut6wqYqsAvK4Ay8S7SqfEMdi4CXW0Q.xk0YmBdwIqAmvryaQoX8YAJP4MiHdzGVKfqMxb_fUqeJFY7BjglZdMh2dVyvPPpT9dhYEWBVL1TGB6LMPmd.kczuV8e8ykHgCDeclZC86KdveK8PDfDjiILNIMyZjCwv25kM5HcPdsfP9xGof8X2kX6MjfIMpBAhotSe2_tXOm8rdemEDLi.SQvD2j7cC4t..xkn9tt4PWGBXIinzcBJQDxSu9rBfpUy3lizX6qIwLzhkkGxe7VNnaFOfxwy6Ct.JtGoss..ytAz87weWqQ9Y0O4mvd6jI0TytqSPSYULlxP7gMGrzJGf0Qlimia2azMfrUtorLloJstQnDB0Tj6QS8YiaFo1Up4f1Wom5_RLrvKr9k97_nGxXy8VMLwhwrvfGGbenVYxT8eJwWWnJRQ6fDhpPOyQsYkJ2NAyga7zrux5GArip1kGKZxs4UIn7HaXhzRY44q0k7ygIxIr3a.bpomZc7YVEbvu6PdpuH92IHkLu5mvEnLtTZddCDUl_GdEtHTPWYWWVoYqbcjO33q4kp9pMWE6Q--";
            Token.TokenSecret         = "17fc1153a844f36815e5fe4e99234cb12950d2fd";
            Token.AddtionalProperties = nameValueCollection;

            Client = new SportsProvider("", CONSUMER_KEY, CONSUMER_SECRET, Token);
        }
예제 #2
0
        private static void SetupClient()
        {
            GetToken(false);

            Client = new SportsProvider("", ClientId, ClientSecret, Token);
            Thread.Sleep(1000);

            try
            {
                FantasyContent content = Client.ExecuteRequest <FantasyContent>("http://fantasysports.yahooapis.com/fantasy/v2/game/nba");
            }
            catch (Exception exception)
            {
                if (exception.HResult == -2146233088)
                {
                    GetToken(true);
                    Client = new SportsProvider("", ClientId, ClientSecret, Token);
                    Thread.Sleep(1000);
                    return;
                }

                throw;
            }
        }
예제 #3
0
        static void Main(string[] args)
        {
            if (Storage.FileExists(TOKEN_FILE))
            {
                try {
                    BinaryFormatter formatter = new BinaryFormatter();
                    using (Stream stream = Storage.OpenFile(TOKEN_FILE, FileMode.Open)) {
                        Token = formatter.Deserialize(stream) as AccessToken;
                    }
                } catch {
                    Console.WriteLine("ERROR: Error deserializing the token!");
                }
            }

            if (Token != null)
            {
                Client = new SportsProvider("", CONSUMER_KEY, CONSUMER_SECRET, Token);
                Player player = QuickPlayerTest();
                Console.WriteLine("Player name: " + player.Name);

                var league = QuickLeagueTest();
                Console.WriteLine("League name: " + league.Name);

                var team = QuickTeamTest();
                Console.WriteLine("Team name: " + team.Name);
            }
            else
            {
                string consumerKey    = CONSUMER_KEY;
                string consumerSecret = CONSUMER_SECRET;
                string appUrl         = string.Empty;
                string authCallback   = "oob";
                //YahooProvider target = new YahooProvider(consumerKey, consumerSecret, appUrl, authCallback);

                //Func<string, string> userAuthCallback = url =>
                //{
                //        //const string loginUrl = "https://api.login.yahoo.com/oauth/v2/get_request_token";
                //        wb.Invoke(new Action(() => { wb.Navigate(url); })); //https://login.yahoo.com/config/login?
                //        if (wb.Url.ToString().StartsWith("https://login.yahoo.com/config/login")) { //https://api.login.yahoo.com/oauth/v2/request_auth?
                //            HtmlElement form = wb.Document.Forms["login_form"];
                //            //wb.Document.All.GetElementsByName(".save")[0].RaiseEvent("Click");
                //            HtmlElement userElement = form.All["username"];
                //            HtmlElement passElement = form.All["passwd"];
                //            form.InvokeMember("submit");
                //            if (wb.Url.ToString().StartsWith("https://api.login.yahoo.com/oauth/v2/request_auth?")) {
                //                form = wb.Document.Forms.GetElementsByName("rcForm")[0];
                //                form.InvokeMember("submit");
                //            } else
                //                throw new InvalidOperationException("uh oh... expected to get to the next url");
                //        }

                //        return wb.Url.Query;
                //}; // TODO: Initialize to an appropriate value
                //Token = target.Authenticate(userAuthCallback);

                Func <string, string> userAuthCallback = url =>
                {
                    using (Process p = new Process()) {
                        p.StartInfo = new ProcessStartInfo("iexplore.exe", url);
                        p.Start();
                        return(Microsoft.VisualBasic.Interaction.InputBox("Enter key from (" + url + "):"));
                    }
                };

                SportsProvider client = new SportsProvider(appUrl, CONSUMER_KEY, CONSUMER_SECRET);
                client.AuthenticateAsync(userAuthCallback, completeOperation => {
                    completeOperation(); // this must be called.
                    Token = client.Token;
                    Console.WriteLine("\nAsynchronous Authentication Operation completed successfully!\n");
                });
                Console.WriteLine("Waiting up to 60 seconds...");
                int count = 0;
                while (!client.IsAuthenticated && count < 60)
                {
                    Console.Write(". ");
                    Thread.Sleep(1000);
                    count++;
                }

                if (!client.IsAuthenticated)
                {
                    return; // exit.
                }
                using (Stream stream = Storage.OpenFile(TOKEN_FILE, FileMode.Create)) {
                    //DataContractSerializer serializer = new DataContractSerializer(typeof(AccessToken));
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(stream, Token);
                    //serializer.WriteObject(stream, Token);
                }
            }

            Console.WriteLine(String.Format("Token: {0}\nSecret: {1}\n", Token.Token, Token.TokenSecret));
            Console.WriteLine("Press any key to continue...");
            Console.Read();
        }