/// <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); } }
/// <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"); }
/// <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; }
/// <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); }