Y a-t-il un moyen dans l'API Twitter d'obtenir les réponses à un tweet particulier? Merci
Réponses
Trop de publicités?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
.
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
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;
}
}
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.
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