예제 #1
0
        /// <summary>
        ///		Obtiene la salida de una URL
        /// </summary>
        internal static MLFile GetResponse(TwitterAccount objAccount, string strURL, ParameterDataCollection objColParameters, bool blnPost)
        {
            try
                {	RestController objController = new RestController();
                    oAuthAuthenticator objAuthenticator = new oAuthAuthenticator();
                    RequestMessage objRequest = new RequestMessage(RequestMessage.MethodType.Get, strURL);
                    ResponseMessage objResponse;

                        // Asigna las propiedades al autentificador
                            objAuthenticator.ConsumerKey = objAccount.Manager.OAuthConsumerKey;
                            objAuthenticator.ConsumerSecret = objAccount.Manager.OAuthConsumerSecret;
                            objAuthenticator.AccessToken = objAccount.OAuthToken;
                            objAuthenticator.AccessTokenSecret = objAccount.OAuthTokenSecret;
                        // Asigna el autentificador
                            objController.Authenticator = objAuthenticator;
                        // Asigna el método de envío
                            if (blnPost)
                                objRequest.Method = RequestMessage.MethodType.Post;
                        // Asigna los parámetros
                            if (objColParameters != null)
                                foreach (ParameterData objParameter in objColParameters)
                                    objRequest.QueryParameters.Add(objParameter.Key, objParameter.Value);
                        // Envía el mensaje
                            objResponse = objController.Send(objRequest);
                        // Devuelve el documento JSON
                            if (objResponse.IsError)
                                return GetError("Error en la recepción. Status: " + objResponse.ErrorDescription);
                            else
                                return new Bau.Libraries.LibMarkupLanguage.MLSerializer().ParseText(objResponse.Body);
                    }
                catch (Exception objException)
                    { return GetError(objException);
                    }
        }
예제 #2
0
        /// <summary>
        ///		Inicializa el formulario
        /// </summary>
        private void InitForm()
        {
            string strOAuthToken, strOAuthTokenSecret;

                // Inicializa el validador
                    objOAuthValidator = new oAuthAuthenticator(Program.TwitterBotManager.OAuthConsumerKey, Program.TwitterBotManager.OAuthConsumerSecret);
                // Obtiene el token de validación
                    if (objOAuthValidator.GetAuthorizationTokens(cnstStrUrlRequestToken, "oob", out strOAuthToken, out strOAuthTokenSecret))
                        { // Guarda los token
                                OAuthToken = strOAuthToken;
                                OAuthSecretToken = strOAuthTokenSecret;
                            // Muestra el texto en el explorador
                                wbExplorer.DocumentText = GetHTML(new Uri(cnstStrURLAuthorize + "?oauth_token=" + strOAuthToken));
                        }
                    else
                        Bau.Controls.Forms.Helper.ShowMessage(this, "Error al intentar conectar con el servidor remoto");
        }
예제 #3
0
        /// <summary>
        ///		Carga los datos de autentificación plano
        /// </summary>
        private IAuthenticator LoadAuthenticationOAuth(MLNode objMLChild)
        {
            oAuthAuthenticator objAuthenticator = new oAuthAuthenticator();

                // Asigna los datos
                    objAuthenticator.ConsumerKey = objMLChild.Nodes[cnstStrTagAuthOAuthConsumerKey].Value;
                    objAuthenticator.ConsumerSecret = objMLChild.Nodes[cnstStrTagAuthOAuthConsumerSecret].Value;
                    objAuthenticator.AccessToken = objMLChild.Nodes[cnstStrTagAuthOAuthAccessToken].Value;
                    objAuthenticator.AccessTokenSecret = objMLChild.Nodes[cnstStrTagAuthOAuthAccessTokenSecret].Value;
                // Devuelve el autentificador
                    return objAuthenticator;
        }
예제 #4
0
        /// <summary>
        ///		Añade los nodos de autentificación oAuth
        /// </summary>
        private void AddNodesAuthentificationOAuht(MLNode objMLNode, oAuthAuthenticator objAuthenticator)
        {
            MLNode objMLAuth = objMLNode.Nodes.Add(cnstStrTagAuthOAuth);

                objMLAuth.Nodes.Add(cnstStrTagAuthOAuthConsumerKey, objAuthenticator.ConsumerKey);
                objMLAuth.Nodes.Add(cnstStrTagAuthOAuthConsumerSecret, objAuthenticator.ConsumerSecret);
                objMLAuth.Nodes.Add(cnstStrTagAuthOAuthAccessToken, objAuthenticator.AccessToken);
                objMLAuth.Nodes.Add(cnstStrTagAuthOAuthAccessTokenSecret, objAuthenticator.AccessTokenSecret);
        }