Exemplo n.º 1
0
        private async Task<OAuth> SignInAsyncTask(string username, string password)
        {
            var o = new OAuth(ConsumerKey, ConsumerSecret);
            var uri = new Uri(XAuthUrl);
            string xauth = string.Format("x_auth_mode=client_auth&x_auth_password={0}&x_auth_username={1}",
                password.UrlEncode(), username.UrlEncode());
            uri = o.SignUri(uri, extraSignature: xauth, httpmethod: "POST");
            string result = await uri.HttpPost(xauth);

            if (result == null)
                return null;

            string token = "";
            string tokensecret = "";
            foreach (var val in result.Split('&').Select(item => item.Split('=')))
            {
                switch (val[0])
                {
                    case "oauth_token":
                        token = val[1];
                        break;
                    case "oauth_token_secret":
                        tokensecret = val[1];
                        break;
                }
            }
            o.Token = token;
            o.TokenSecret = tokensecret;
            return o;
        }