98 votes

Réponses à un tweet particulier, API Twitter

Y a-t-il un moyen dans l'API Twitter d'obtenir les réponses à un tweet particulier? Merci

54voto

Tim Lytle Points 10699

Ce que je comprends, il n'y a pas un moyen de le faire directement (au moins pas maintenant). Semble comme quelque chose qui devrait être ajouté. Ils ont récemment ajouté un peu de 'retweet' capacités, sembler logique de l'ajouter également.

Voici l'une des voies possibles pour ce faire, premier exemple de tweet de données (à partir d' status/show):

<status>
  <created_at>Tue Apr 07 22:52:51 +0000 2009</created_at>
  <id>1472669360</id>
  <text>At least I can get your humor through tweets. RT @abdur: I don't mean this in a bad way, but genetically speaking your a cul-de-sac.</text>
  <source><a href="http://www.tweetdeck.com/">TweetDeck</a></source>
  <truncated>false</truncated>
  <in_reply_to_status_id></in_reply_to_status_id>
  <in_reply_to_user_id></in_reply_to_user_id>
  <favorited>false</favorited>
  <in_reply_to_screen_name></in_reply_to_screen_name>
  <user>
    <id>1401881</id>
     ...

D' status/show vous pouvez trouver l'id de l'utilisateur. Ensuite, statuses/mentions_timeline , vous obtiendrez une liste de statut d'un utilisateur. Juste parse que le retour à la recherche pour un in_reply_to_status_id correspondant à l'origine du tweet de l' id.

10voto

minaz Points 2473

Twitter a une API non documentée appelée related_results. Il vous donnera des réponses pour l'identifiant de tweet spécifié. Je ne suis pas sûr de sa fiabilité en tant qu’expérimental, mais c’est le même appel api que l’on appelle sur Twitter Web.

À utiliser à vos risques et périls. :)

 https://api.twitter.com/1/related_results/show/172019363942117377.json?include_entities=1
 

Pour plus d'informations, consultez cette discussion sur dev.twitter: https://dev.twitter.com/discussions/293

10voto

lincolnberryiii Points 114

Voici ma solution. Il utilise la bibliothèque PHP Twitter Oauth d'Abraham: https://github.com/abraham/twitteroauth

Vous devez connaître l'attribut screen_name de l'utilisateur Twitter ainsi que l'attribut id_str du tweet en question. De cette façon, vous pouvez obtenir un flux de conversation arbitraire à partir du tweet de n'importe quel utilisateur:

 function get_conversation($id_str, $screen_name, $return_type = 'json', $count = 100, $result_type = 'mixed', $include_entities = true) {

     $params = array(
          'q' => 'to:' . $screen_name, // no need to urlencode this!
          'count' => $count,
          'result_type' => $result_type,
          'include_entities' => $include_entities,
          'since_id' => $id_str
     );

     $feed = json_decode($connection->get('search/tweets', $params), true);

     $comments = array();

     for ($index = 0; $index < count($feed['statuses']); $index++) {
          if ($feed['statuses'][$index]['in_reply_to_status_id_str'] == $id_str) {
               array_push($comments, $feed['statuses'][$index]);
          }
     }

     switch ($return_type) {
     case 'array':
          return $comments;
          break;
     case 'json':
     default:
          return json_encode($comments);
          break;
     }

}
 

3voto

abraham Points 19107

Pas de manière pragmatique facile. Il y a une demande de fonctionnalité pour cela:

http://code.google.com/p/twitter-api/issues/detail?id=142

Quelques sites Web tiers fournissent des API, mais ils manquent souvent de statuts.

3voto

vsubbotin Points 21

J'ai implémenté ceci de la manière suivante:

1) statuses / update renvoie l'identifiant du dernier statut (si include_entities est vrai) 2) Ensuite, vous pouvez demander des statuts / mentions et filtrer le résultat par in_reply_to_status_id. Ce dernier doit être égal à l'identifiant particulier de l'étape 1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X