tweet specific from twitter

specific - Respuestas a un tweet en particular, Twitter API



twitter get comments api (9)

¿Hay alguna manera en la API de Twitter para obtener las respuestas a un tweet en particular? Gracias


Aquí está el procedimiento para obtener las respuestas de un tweet

  1. cuando recoges el tweet store el tweetId es decir, id_str
  2. usando la API de búsqueda de Twitter haga la siguiente consulta [q="to:$tweeterusername", sinceId = $tweetId]
  3. Bucle todos los resultados, los resultados que coinciden con el in_reply_to_status_id_str to $tweetid son las respuestas para la publicación.

Aquí está mi solución. Utiliza la biblioteca Twitter Oauth PHP de Abraham: https://github.com/abraham/twitteroauth

Requiere que conozcas el atributo screen_name del usuario de Twitter, así como el atributo id_str del tweet en cuestión. De esta forma, puedes obtener un feed de conversación arbitrario desde cualquier tweet de usuario arbitrario:

* ACTUALIZACIÓN: código actualizado para reflejar el acceso a objetos frente al acceso a la matriz:

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 = $connection->get(''search/tweets'', $params); $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; } }


Aquí estoy compartiendo un simple código R para obtener la respuesta de un tweet específico

userName = "SrBachchan" ##fetch tweets from @userName timeline tweets = userTimeline(userName,n = 1) ## converting tweets list to DataFrame tweets <- twListToDF(tweets) ## building queryString to fetch retweets queryString = paste0("to:",userName) ## retrieving tweet ID for which reply is to be fetched Id = tweets[1,"id"] ## fetching all the reply to userName rply = searchTwitter(queryString, sinceID = Id) rply = twListToDF(rply) ## eliminate all the reply other then reply to required tweet Id rply = rply[!rply$replyToSID > Id,] rply = rply[!rply$replyToSID < Id,] rply = rply[complete.cases(rply[,"replyToSID"]),] ## now rply DataFrame contains all the required replies.


Como dice satheesh, funciona muy bien. Aquí está el código REST API, lo que utilicé

ini_set(''display_errors'', 1); require_once(''TwitterAPIExchange.php''); /** Set access tokens here - see: https://dev.twitter.com/apps/ **/ $settings = array( ''oauth_access_token'' => "xxxx", ''oauth_access_token_secret'' => "xxxx", ''consumer_key'' => "xxxx", ''consumer_secret'' => "xxxx" ); // Your specific requirements $url = ''https://api.twitter.com/1.1/search/tweets.json''; $requestMethod = ''GET''; $getfield = ''?q=to:screen_name&sinceId=twitter_id''; // Perform the request $twitter = new TwitterAPIExchange($settings); $b = $twitter->setGetfield($getfield) ->buildOauth($url, $requestMethod) ->performRequest(); $arr = json_decode($b,TRUE); echo "Replies <pre>"; print_r($arr); die;


Lo he implementado de la siguiente manera:

1) status / update devuelve id del último estado (si include_entities es verdadero) 2) Luego puede solicitar estados / menciones y filtrar el resultado por in_reply_to_status_id. Este último debe ser igual a la identificación particular del paso 1


Me encontré con el mismo problema hace unos meses en el trabajo, ya que estaba utilizando su related_tweets final related_tweets en REST V1.

Así que tuve que crear una solución, que he documentado aquí. http://adriancrepaz.com/twitter_conversations_api

Esta clase debería hacer exactamente lo que quieras. Raspa el HTML del sitio móvil y analiza una conversación. Lo he usado por un tiempo y parece muy confiable.

Para buscar una conversación ...

Solicitud

<?php require_once ''acTwitterConversation.php''; $twitter = new acTwitterConversation; $conversation = $twitter->fetchConversion(324215761998594048); print_r($conversation); ?>

Respuesta

Array ( [error] => false [tweets] => Array ( [0] => Array ( [id] => 324214451756728320 [state] => before [username] => facebook [name] => Facebook [content] => Facebook for iOS v6.0 ? Now with chat heads and stickers in private messages, and a more beautiful News Feed on iPad itunes.apple.com/us/app/faceboo? [date] => 16 Apr [images] => Array ( [thumbnail] => https://pbs.twimg.com/profile_images/3513354941/24aaffa670e634a7da9a087bfa83abe6_normal.png [large] => https://pbs.twimg.com/profile_images/3513354941/24aaffa670e634a7da9a087bfa83abe6.png ) ) [1] => Array ( [id] => 324214861728989184 [state] => before [username] => michaelschultz [name] => Michael Schultz [content] => @facebook good April Fools joke Facebook?.chat hasn?t changed. No new features. [date] => 16 Apr [images] => Array ( [thumbnail] => https://pbs.twimg.com/profile_images/414193649073668096/dbIUerA8_normal.jpeg [large] => https://pbs.twimg.com/profile_images/414193649073668096/dbIUerA8.jpeg ) ) .... ) )

Espero que ayude, Adrian.



Por lo que entiendo, no hay una manera de hacerlo directamente (al menos no ahora). Parece algo que debería agregarse. Recientemente agregaron algunas capacidades de ''retweet'', parece lógico agregar esto también.

Aquí hay una manera posible de hacerlo: primero muestree datos de tweet (desde 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> ...

Desde status/show puedes encontrar la identificación del usuario. Luego statuses/mentions_timeline devolverá una lista de estado para un usuario. Simplemente analice esa devolución buscando un in_reply_to_status_id coincida con el id del tweet original.


Twitter tiene una API indocumentada llamada related_results. Le dará respuestas para el id de tweet especificado. No estoy seguro de qué tan confiable es su experiencia, sin embargo, esta es la misma llamada api que se llama en la web de Twitter.

Úselo bajo su propio riesgo. :)

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

Para obtener más información, consulte esta discusión en dev.twitter: https://dev.twitter.com/discussions/293