2010-06-22 3 views
0

Je ne suis pas capable de tweet en continu sur Twitter - tous les trois tweets je reçois:Je ne peux pas poster à Twitter en utilisant cURL et PHP

affichage d'erreur sur Twitter. Réessayer

Comment résoudre ce problème?

Mon code est le suivant:

$host = "http://twitter.com/statuses/update.xmlstatus=".urlencode(stripslashes(urldecode($message))); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $host); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); 
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); 
$result = curl_exec($ch); 
// Look at the returned header 
$resultArray = curl_getinfo($ch); 
//print_r($resultArray); 
if($resultArray['http_code'] == "200"){ 
    $twitter_status='Your message has been Tweeted'; 
    update_tweet_extra($result_id,"1"); 
} else { 
$twitter_status="Error posting to Twitter. Retry"; 
// update_tweet_extra($result_id,"0"); 
} 
echo $twitter_status; 

Répondre

2

Vous ne pouvez pas utiliser l'API avec une authentification de base depuis le 31 août 2010. Vous pouvez utiliser une petite fonction spider avec curl qui se connecte, récupère votre maison et tweet. Je l'ai fait: http://www.barattalo.it/2010/09/09/how-to-change-twitter-status-with-php-and-curl-without-oauth/ Si vous ne voulez pas utiliser le modèle d'authentification oAuth, vous devez le faire de cette façon.

+0

dans mon localhost fonctionne très bien, mais je pur cette ein cod mon serveur, mes tweets ne s'affichent pas dans mon twitter, – Bharanikumar

0

Cela semble très étrange, puisque les mises à jour d'état via l'API de Twitter ne sont pas limitée par la vitesse (voir here), à moins que vous la mise à jour plus de 1000 times a day.

Vous pourriez travailler plus de ce qui est arrivé si vous supprimez cette ligne utile A la recherche:

//print_r($resultArray); 

en retirant le // au début de la ligne.

2

Je ne pense pas que ce soit un problème avec votre code, mais plutôt le fait que Twitter supprime progressivement le support d'authentification de base et passe à OAuth.

Plus d'informations sur http://apiwiki.twitter.com/Authentication.

+1

J'ai regardé ce oAuth, je ne vois pas d'exemple simple pour tester oAuth. – Bharanikumar

+1

sûr il y a: http://dev.twitter.com/ – Jayrox

+0

Plus spécifiquement, jetez un oeil à: http://dev.twitter.com/pages/auth –

0

tweet en utilisant Twitter, vous aurez besoin d'un post_authenticity_token avec votre nom d'utilisateur et mot de passe. ce jeton peut être obtenu à partir de votre page de profil en le récupérant en utilisant curl (après vous être connecté avec curl). J'ai expérimenté avec curl et était capable de tweeter en utilisant curl. vous pouvez trouver mon code à (bien que ce soit dans le script bash, il peut être porté sur PHP facilement car ils utilisent tous les deux curl) http://pastebin.com/a5eBcEeP.

0

Vous pouvez trouver une liste des bibliothèques PHP qui prennent en charge OAuth et vous pouvez utiliser pour écrire une fonction tweet en PHP et la version 1.1 de l'API Twitter ici: https://dev.twitter.com/docs/twitter-libraries

tmhOAuth est probablement mon préféré.

Questions connexes