2009-10-15 10 views
0

J'utilise le code ci-dessous pour afficher les mises à jour twitter:twitter post api être coupé

// Set username and password for twitter API 
     $username = '***'; 
     $password = '***'; 

     // The twitter API address 
     $url = 'http://twitter.com/statuses/update.xml'; 

     // Alternative JSON version 
     // $url = 'http://twitter.com/statuses/update.json'; 

     // Set up and execute the curl process 
     $curl_handle = curl_init(); 

     curl_setopt($curl_handle, CURLOPT_URL, "$url"); 
     curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 10); 
     curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($curl_handle, CURLOPT_POST, 1); 
     curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$update"); 
     curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password"); 

     $buffer = curl_exec($curl_handle); 

     curl_close($curl_handle); 

     // check for success or failure 

     if (empty($buffer)) 
     { 
      echo 'error?!'; 
     } 
     else 
     { 
      // mark the song as tweetered 
      mysql_query("UPDATE `songs` SET `tweet` = '1' WHERE `id` = $songid "); 
     } 
    } 

    echo $update; 

Les fonctions de poste mais il est coupée pour une raison quelconque.

Par exemple le code ci-dessus affichera: Tiesto - Feel It In My Bones (Feat. Tegan à twitter.

Quand il devrait afficher: Tiesto - Feel It In My Bones (Feat. Tegan & Sara) - 160Kbps http://bit.ly/5mdCK4

J'utilise l'écho mise à jour de $; ligne à la fin de comparer la sortie à Twitter à la valeur $update et $update est correcte.

Répondre

5

Avez-vous essayé d'autres chaînes d'entrée? D'après ce que vous avez posté là-bas, je parierais que votre problème est l'esperluette dans le statut, puisqu'il s'agit d'un méta-caractère dans les messages de formulaire. Je suis sûr que PHP a une certaine fonction pour coder les chaînes d'URL, et vous voudrez l'utiliser sur $update.

+0

Je vérifie cela maintenant. Je pensais que mon code avait déjà fonctionné avec les symboles de & s et autres, mais je regarde tous les articles. – ian

+0

Cest il repost sur comment encoder correctement et merci. – ian

+0

Pourquoi republier? C'est répondu ici. – ceejayoz

1

Sixten Otto a raison. Vous devez faire:

$update =urlencode($update);

pour éviter les problèmes avec des caractères spéciaux.

+0

Oh, hé, c'est même nommé quelque chose de approprié! :-) –

Questions connexes