API Twitter y php

eXtreM3

Buenas! Tengo un problema para la última web que he desarrollado. Hay un módulo de twitter en el que quiero mostrar los últimos tweets del usuario, y no funciona. Lo curioso es que cambiando el nombre de usuario de mi cliente por otro nombre de usuario de twitter (Shakira, Cristiano...) sí muestra sus tweets, o sea que el código está bien, y es el siguiente:

function my_twitter($usuario,$tweets) {
		$feed = "http://search.twitter.com/search.atom?q=from:" . $usuario . "&rpp=" . $tweets;
		$xml = simplexml_load_file($feed);
		foreach($xml->children() as $child) {
			foreach ($child as $value) {
				if($value->getName() == "content") {
					$content = $value . "";
					echo '<p class="twit">'.$content.'</p><br>';
				}	
			}
		}	
	}

Luego se llama a la función

<?php
		my_twitter("Shakira",2);
?>

y muestra los tweets de shakira bien (los 2 últimos). El nombre de usuario está bien, lo he comprobado y recomprobado, no hay tildes ni espacios... qué pasa? :(

Seríais tan amables de pegar ese código en un php que os creeis con vuestro nombre de usuario de twitter a ver si os muestra vuestros tweets??? Estoy rayao xD

Soltrac

Yo lo veo obvio, seguramente hay una opción en twitter para poder acceder desde API o no (yo no tengo twitter así q ni idea) en plan tipo de permisos o algo así.

Mira las opciones de la cuenta a ver.

1 respuesta
eXtreM3

#2 Lo he mirado y no he encontrado nada así que se medio parezca a permisos...

scumah

Prueba a usar este feed a ver si te lo devuelve bien:

http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=${usuario}&count=${tweets}

Y si quieres hacer llamadas a twitter, este es el mejor sitio para bichear.

ED: No puedo poner el feed completo sin que se corte, tú verás como lo sacas :P

1
eXtreM3

Seguía sin funcionarme así que busqué otros métodos y con json funcionaba, así que lo dejé así al final:

$(document).ready(function(){
  // de que usuario es el feed?
  var twitterUser = "nombre_usuario";
  // cuantos tweets hay que mostrar?
  var tweets = 5;
  // lanzamos la llamada ajax cross-domain...
  $.getJSON("http://twitter.com/status/user_timeline/"+twitterUser+".json?count=" + (tweets*2) +"&callback=?",function(json){
    html = "<ul class='myTweets'>";
    var urlregex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi;
    var userregex = /(\@([-A-Z0-9+&\/%?=~_|!:,.;]*))/gi;
    var hashtagregex = /(\#([-A-Z0-9+&\/%?=~_|!:,.;]*))/gi;
    var count = 0;
    for (i=0;i<json.length;i++)
    {
      if (json[i].in_reply_to_screen_name==null)
      {
        html += "<li><p class='text'><img src='__img/pajaro.png'> " + json[i].text.replace(urlregex,"<a class='url' href='$1' rel='nofollow'>$1</a>").replace(userregex,"<a class='user' href='http://twitter.com/$2' rel='nofollow'>$1</a>").replace(hashtagregex,"<a class='hashtag' href='http://twitter.com/#search?q=$1' rel='nofollow'>$1</a>") + "</p><br>";
        //html += "<p><a class='rt' href='http://twitter.com/home?status=RT @"+twitterUser+" "+json[i].text+"' rel='nofollow'>[ReTweet]</a> ";
        //html += "<a class='reply' href='http://twitter.com/home?status=@"+twitterUser+" &amp;in_reply_to_status_id=" + json[i].id + "&amp;in_reply_to="+twitterUser+"' rel='nofollow'>[Responder]</a></p></li>";
        count++;
      }
      if (count >= tweets) break;
    }
    html += "</ul>";
    // incluimos el html dentro del div myTwitter
    $("#myTwitter").append(html);
  })
});

y después para llamar a la función en el código html directamente

<div id="myTwitter"></div>

Usuarios habituales

  • eXtreM3
  • scumah
  • Soltrac