Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2011, 06:27
Avatar de el_javi
el_javi
 
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 9 meses
Puntos: 10
Twitter - Problema enviando mensajes con tildes o caracteres especiales

Hola a todos.

Tengo desarrollado en una página Web mía una aplicación para que desde un formulario, se mande al usuario que esté interactuando un mensaje a tweeter.

Todo funciona perfectamente (me actualiza el status de Twitter sin problema) pero el problema viene cuando en el texto aparece algún caracter especial

Con poner una simple tilde en una palabra, todo el proceso me lo da perfecto MENOS que no se publica el mensaje.

Revisando las respuestas del objeto Twitter y:
- Cuando mando textos SIN caracteres especiales o SIN tildes, el objeto Twitter está perfecto con todos sus nodos correctos
- Cuando mando textos CON caracteres especiales o CON tildes, el objeto Twitter me muestra un nodo de ERROR
Código:
  array(2) {
    ["error"]=>
    string(34) "Could not authenticate with OAuth."
    ["request"]=>
    string(21) "/statuses/update.json"
  }
¿Porqué puede estar ocurriendo esto?

El proceso de actuación es:
- Página con formulario.
- Envío del formulario a la página donde tengo todo programado

Esta es mi programación:
Código PHP:
    header("Content-Type: text/html; charset=utf-8");

    include 
'php/twitter/lib/EpiCurl.php';
    include 
'php/twitter/lib/EpiOAuth.php';
    include 
'php/twitter/lib/EpiTwitter.php';
    include 
'php/twitter/secret.php';
    include 
'php/bitly/secret.php';

    
// Si NO está autentificado en Twitter, le mandamos a la URL de autentificación
    
if((isset($_GET['oauth_token']) && $_GET['oauth_token'] == '') || (!isset($_GET['oauth_token'])))
    {
        
$url $twitterObj->getAuthorizationUrl();
        
        
header('Location: '.$url);
    }
    else 
// Si está autentificado en Twitter
    
{
        
$twitterObj->setToken($_GET['oauth_token']);
        
$token $twitterObj->getAccessToken();
        
$twitterObj->setToken($token->oauth_token$token->oauth_token_secret);
        
$_SESSION['ot'] = $token->oauth_token;
        
$_SESSION['ots'] = $token->oauth_token_secret;
        
$twitterInfo$twitterObj->get_accountVerify_credentials();
        
$twitterInfo->response;
        
        
$username $twitterInfo->screen_name;
        
$profilepic $twitterInfo->profile_image_url;
    }
    
// si tengo los datos necesarios para mandar el mensaje....
    
if(isset($_SESSION["TWEET"]["TO"]) && !empty($_SESSION["TWEET"]["TO"]) && isset($_SESSION["TWEET"]["TEXT"]) && !empty($_SESSION["TWEET"]["TEXT"]) && isset($_SESSION["TWEET"]["PLAN"]) && !empty($_SESSION["TWEET"]["PLAN"]) && !empty($username))
    {    
        
$twitterObj->setToken($_SESSION['ot'], $_SESSION['ots']);
        
$update_status $twitterObj->post_statusesUpdate(array('status' => $msg));
        
$the_response $update_status->response;
        
        
// Si nos da algun tipo de error lo mostramos
        
if (isset($the_response["error"]) && !empty($the_response["error"])) {
            echo(
"<pre>");
            
var_dump($the_response);
            echo(
"</pre>");
        } else {
                
// Redirigimos a la página correspondiente después de que esté todo bien
                 
header("Location: twitter_correcto.php";
        }
    } 
¿Alguien sabe porqué puede ser esto? ¿alguna idea?

Gracias y un saludo.

Javier