2010-02-16 4 views
0

Je suis en train de faire un site simple qui utilise PHP et l'API de Twitter pour écrire mon dernier message de Twitter. J'ai trouvé un tutoriel me montrant comment obtenir mon calendrier (ou 20 derniers messages) au format XML, mais ne peut pas comprendre comment imprimer juste le dernier message, et juste le texte de celui-ci (pas le temps , date, etc qui viennent avec le xml/rss/etc).Obtenir mon dernier message Twitter avec PHP

Mon code ressemble à ceci

<h2 id = "latest"> 
    <?php 
     var $username='myusername'; 
     var $password='mypassword'; 
     var $responseInfo=array(); 

     function latest_status($format='json',$id=null) { 
      $request = 'http://twitter.com/statuses/user_timeline.'.$format; 
      if($id) { 
       $postargs = "id=$id"; 
       return $this->process($request,$postargs); 
      } 
      return $this->process($request); 
     } 

     echo latest_status("json"); 
    ?> 
</h2> 

Et il est de retour ceci:

[{"contributors":null,"created_at":"Tue Feb 16 19:56:08 +0000 2010","in_reply_to_user_id":null,"source":"API","favorited":false,"in_reply_to_status_id":null,"truncated":false,"user":{"notifications":null,"profile_link_color":"0000ff","description":"","verified":false,"profile_background_tile":false,"created_at":"Tue Feb 16 01:16:15 +0000 2010","profile_background_color":"9ae4e8","profile_image_url":" http://s.twimg.com/a/1265999168/images/default_profile_1_normal.png ","time_zone":"Hawaii","profile_sidebar_fill_color":"e0ff92","followers_count":0,"screen_name":"whisperingweb","lang":"en","friends_count":0,"profile_sidebar_border_color":"87bc44","statuses_count":2,"following":null,"protected":false,"favourites_count":1,"location":"","name":"Chris Armstrong","contributors_enabled":false,"profile_text_color":"000000","id":114608397,"geo_enabled":true,"profile_background_image_url":" http://s.twimg.com/a/1265999168/images/themes/theme1/bg.png ","utc_offset":-36000,"url":null},"in_reply_to_screen_name":null,"geo":null,"id":9199090048,"text":"Someone was on your website"},{"favorited":false,"source":"web","in_reply_to_user_id":null,"created_at":"Tue Feb 16 18:50:21 +0000 2010","geo":null,"user":{"verified":false,"description":"","notifications":false,"profile_text_color":"000000","screen_name":"whisperingweb","profile_background_image_url":" http://s.twimg.com/a/1265999168/images/themes/theme1/bg.png ","url":null,"profile_link_color":"0000ff","followers_count":0,"statuses_count":2,"profile_background_tile":false,"created_at":"Tue Feb 16 01:16:15 +0000 2010","friends_count":0,"profile_background_color":"9ae4e8","contributors_enabled":false,"time_zone":"Hawaii","favourites_count":0,"profile_sidebar_fill_color":"e0ff92","protected":false,"location":"","name":"Chris Armstrong","lang":"en","geo_enabled":true,"profile_sidebar_border_color":"87bc44","id":114608397,"following":false,"utc_offset":-36000,"profile_image_url":" http://s.twimg.com/a/1265999168/images/default_profile_1_normal.png "},"contributors":null,"in_reply_to_status_id":null,"id":9196705546,"in_reply_to_screen_name":null,"truncated":false,"text":"The quick brown fox jumps over the lazy dog"}]

Je suis assez nouveau pour php, et complètement nouveau à l'API de Twitter, donc apprécierait toute aide ou Conseil.

modifier: ont changé exemple de xml à JSON

+0

Qu'est-ce 'twitter' de $ dans votre code? Utilisez-vous une bibliothèque Twitter déjà existante pour y accéder? Qu'est-ce que "$ this" se référant à l'intérieur de la fonction (c'est-à-dire où est le reste de la définition de classe)? Et quel type est la sortie de cette fonction (vérifiez avec 'var_dump'). – poke

+0

Ah oui, désolé. J'utilise une bibliothèque que j'ai obtenue d'ici http://brandontreb.com/the-only-twitter-api-php-class-you-will-ever-need/, je viens de copier et coller les morceaux que je pensais être pertinents . Devrais-je corriger ma question en supprimant $ twitter->, ou serais-je mieux de montrer toute la bibliothèque telle qu'elle est? –

Répondre

2

Utilisez le format = 'json' à la place: json_decode ($ response) [0] [ 'text'].

Dans ce cas, utilisez JSON parce qu'il a une cartographie beaucoup plus naturel internes de PHP types de données, ce qui le rend mort facile d'extraire le contenu que vous voulez. Vous pouvez toujours utiliser XML, mais vous devez itérer sur la structure résultante, ce qui est relativement complexe.

+0

Quel est l'avantage de JSON sur XML? –

+0

JSON peut être analysé plus rapidement que XML * en php *. – poke

+1

C'est un standard auquel vous pouvez accéder directement sans vous préoccuper de l'analyse des données (ce qui peut être assez compliqué en termes de xml et encore plus de html brut). – Femaref

2

C'est juste votre navigateur Web affichant le contenu du fichier xml sans tags. Vous devez utiliser une bibliothèque XML (par exemple, simplexml, http://php.net/manual/en/book.simplexml.php) pour obtenir les informations souhaitées.

modifier pour refléter le changement OP

Utilisez la méthode json_decode (voir http://www.php.net/manual/en/function.json-decode.php). La sortie peut être accédée comme un tableau.

Pour toute autre question,, s'il vous plaît utiliser également la documentation de PHP et Google (je suis les informations sur JSON par googleing « JSON en php »).

+0

Des conseils sur la façon dont j'implémenterais la bibliothèque? Est-ce à travers la bibliothèque que je spécifierais quel poste, et quels éléments de celui-ci, afficher? –

+1

vous devez utiliser les fonctions offertes par la bibliothèque simplexml (voir http://www.php.net/manual/fr/simplexml.examples-basic.php pour un tutoriel de base) et vous y habituer. Je suis d'accord avec djc, utilisez la possibilité de json, ça vous épargnera beaucoup de larmes. – Femaref

+0

Ok merci, j'ai changé l'exemple pour être json au lieu de xml. Que dois-je ajouter pour sélectionner uniquement le dernier message des données json? –

Questions connexes