示例#1
0
        public void Authenticate(string verifier)
        {
            TwitterOAuth.TokenPair tokens = OAuth.AccessToken(verifier);

            if (tokens == null)
            {
                OAuth  = null;
                Status = UserStatus.NO_CREDITIONAL;
                return;
            }

            setting.SetValue(section, "AccessToken", OAuth.User.Token   = tokens.Token);
            setting.SetValue(section, "AccessSecret", OAuth.User.Secret = tokens.Secret);
            setting.Save();

            MyUserInfo = getMyUserInfo();
            Status     = MyUserInfo == null ? UserStatus.INVALID_CREDITIONAL : UserStatus.LOGIN_SUCCESS;
        }
示例#2
0
        static void Main(string[] args)
        {
            switch (args.Length)
            {
            case 0:
                break;

            case 1:
                twit_file = args[0];
                break;

            case 2:
                twit_file = args[0];
                ini_file  = args[1];
                break;

            default:
                Console.WriteLine("Usage : {0} [[twit_file] [ini_file]]", System.AppDomain.CurrentDomain.FriendlyName);
                return;
            }

            Log.Init();
            var    setting        = new INIParser(ini_file);
            var    AuthData       = "Authenticate";
            string consumerKey    = setting.GetValue(AuthData, "ConsumerKey");
            string consumerSecret = setting.GetValue(AuthData, "CconsumerSecret");
            string accessToken    = setting.GetValue(AuthData, "AccessToken");
            string accessSecret   = setting.GetValue(AuthData, "AccessSecret");

            if (string.IsNullOrWhiteSpace(consumerKey) || string.IsNullOrWhiteSpace(consumerSecret))
            {
                Log.Error("Program", "Unable to get consumerKey / Secret. Please check config file.");
                if (string.IsNullOrWhiteSpace(consumerKey))
                {
                    setting.SetValue(AuthData, "ConsumerKey", "");
                }
                if (string.IsNullOrWhiteSpace(consumerSecret))
                {
                    setting.SetValue(AuthData, "CconsumerSecret", "");
                }
                if (string.IsNullOrWhiteSpace(accessToken))
                {
                    setting.SetValue(AuthData, "AccessToken", "");
                }
                if (string.IsNullOrWhiteSpace(accessSecret))
                {
                    setting.SetValue(AuthData, "AccessSecret", "");
                }
                setting.Save();
                return;
            }
            else if (string.IsNullOrWhiteSpace(accessToken) || string.IsNullOrWhiteSpace(accessSecret))
            {
                oAuth = new OAuth(consumerKey, consumerSecret);
                OAuth.TokenPair tokens = null;
                tokens            = oAuth.RequestToken();
                oAuth.User.Token  = tokens.Token;
                oAuth.User.Secret = tokens.Token;
                try
                {
                    using (Process.Start(new ProcessStartInfo {
                        UseShellExecute = true, FileName = "https://api.twitter.com/oauth/authorize?oauth_token=" + tokens.Token
                    }))
                    { }
                }
                catch
                { }

                string verifier;
                int    i;

                do
                {
                    Console.Write("Please input verifier code : ");
                    verifier = Console.ReadLine();
                } while (!int.TryParse(verifier, out i));

                tokens = oAuth.AccessToken(verifier);

                if (tokens != null)
                {
                    oAuth.User.Token  = tokens.Token;
                    oAuth.User.Secret = tokens.Token;
                    accessToken       = oAuth.User.Token;
                    accessSecret      = oAuth.User.Secret;
                    setting.SetValue(AuthData, "AccessToken", tokens.Token);
                    setting.SetValue(AuthData, "AccessSecret", tokens.Secret);
                    setting.Save();
                }

                setting.Save();
            }
            else
            {
                oAuth = new OAuth(consumerKey, consumerSecret, accessToken, accessSecret);
            }

            if (oAuth.User.Token != null)
            {
                Publish(new FileInfo(twit_file));
            }
        }