Z tego, co rozumiem, nie ma sposobu, aby to zrobić bezpośrednio (przynajmniej nie teraz). Wygląda na to, że powinno się coś dodać. Niedawno dodali pewne możliwości „retweetowania”, wydaje się logiczne, aby dodać to również.
Oto jeden możliwy sposób, aby to zrobić, pierwsze przykładowe dane z tweeta (od 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>
...
Od status/showmożesz znaleźć identyfikator użytkownika. Następnie statuses/mentions_timelinezwróci listę statusu użytkownika. Po prostu przeanalizuj ten zwrot, szukając in_reply_to_status_idpasującego do oryginalnego tweeta id.
Powiedzmy, że użytkownik2 odpowiada na tweeta użytkownika1. Aby dowiedzieć się tego na podstawie tweeta użytkownika 1, musiałbym poszukać wzmianek dla użytkownika 1. Ale co w przypadku, gdy nie mogę uwierzytelnić się jako użytkownik1? Czy wzmianki nie są dostępne publicznie bez autoryzacji?
letronje
@letronje Nie to, o czym wiem - możesz użyć interfejsu API wyszukiwania, aby znaleźć „@ user1” w tweecie, ale nie sądzę, aby było to tak niezawodne jak używanie status/mentions.
@Dunc Wygląda na to, że został właśnie zmieniony nastatus/mentions_timeline
Tim Lytle
@Tim Słuszna uwaga. Ale mój przypadek użycia jest podobny do letronje (tj. Tweet może pochodzić od kogokolwiek), więc zamiast tego muszę użyć wyszukiwania.
Dunc
51
Oto procedura uzyskiwania odpowiedzi na tweety
po pobraniu tweeta zapisz tweetId tj. id_str
używając interfejsu API wyszukiwania na Twitterze, wykonaj następujące zapytanie
[q="to:$tweeterusername", sinceId = $tweetId]
Zapętl wszystkie wyniki, wyniki pasujące do in_reply_to_status_id_str to $tweetidto odpowiedzi na post.
Wymaga znajomości atrybutu screen_name użytkownika Twittera, a także atrybutu id_str danego tweeta. W ten sposób możesz uzyskać dowolny kanał konwersacji z tweeta dowolnego użytkownika:
* UPDATE: Odświeżony kod, aby odzwierciedlić dostęp do obiektów w porównaniu z dostępem do tablicy:
Dlaczego głosowanie odrzucono? Działa dokładnie tak, jak podano i precyzyjnie rozwiązuje problem. Co więcej, moja metoda różni się od @vsubbotin tym, że możesz użyć dowolnego identyfikatora głośnika wysokotonowego zamiast własnego.
Lincolnberryiii
3
To jest dobre, ale może pochłonąć cenne limity szybkości (180 za oauth). 180 tweetów działa tą metodą ... do zobaczenia!
Mike Barwick
8
Twitter ma nieudokumentowany interfejs API o nazwie related_results. Otrzymasz odpowiedzi na określony identyfikator tweeta. Nie jestem pewien, na ile niezawodny jest jego eksperymentalny, jednak jest to to samo wywołanie interfejsu API, które jest wywoływane w sieci Twitter.
Tak. jak powiedział mathieu, nie jest już bardziej aktywny. Mówi {u'message ': u'Sorry, ta strona nie istnieje', u'code ': 34}
shadab.tughlaq
7
Tutaj udostępniam prosty kod R, aby pobrać odpowiedź na konkretny tweet
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.
gnip.com to w zasadzie jedyne zewnętrzne miejsce, w którym można teraz uzyskać dane z Twittera.
Abraham
3
Zaimplementowałem to w następujący sposób:
1) statuses / update zwraca identyfikator ostatniego statusu (jeśli parametr include_entities jest prawdziwy) 2) Następnie możesz zażądać statusów / wzmianek i przefiltrować wynik według in_reply_to_status_id. Ten ostatni powinien być równy określonemu identyfikatorowi z kroku 1
Ta klasa powinna robić dokładnie to, co chcesz. Pobiera kod HTML witryny mobilnej i analizuje rozmowę. Używam go przez jakiś czas i wydaje się bardzo niezawodny.
czy istnieje sposób na zrobienie tego w javascript?
yashatreya
Nie jestem pewien, nie sprawdzałem, dam znać, jeśli coś znajdę.
pouria babvey
1
ponieważ statuses / mentions_timeline zwróci 20 ostatnich wzmianek, to nie będzie tak wydajne, aby zadzwonić, i ma ograniczenia, takie jak 75 żądań na okno (15 minut), zamiast tego możemy użyć user_timeline
(screen_name == nazwa, którą otrzymaliśmy From status / show)
(count == 1 do max 200)
count: Określa liczbę tweetów do pobrania, maksymalnie 200 na jedno żądanie.
z wyniku Po prostu przeanalizuj ten wynik, szukając in_reply_to_status_id pasującego do identyfikatora oryginalnego tweeta.
Oczywiście nie jest to idealne rozwiązanie, ale zadziała.
Odpowiedzi:
Z tego, co rozumiem, nie ma sposobu, aby to zrobić bezpośrednio (przynajmniej nie teraz). Wygląda na to, że powinno się coś dodać. Niedawno dodali pewne możliwości „retweetowania”, wydaje się logiczne, aby dodać to również.
Oto jeden możliwy sposób, aby to zrobić, pierwsze przykładowe dane z tweeta (od
status/show
):Od
status/show
możesz znaleźć identyfikator użytkownika. Następniestatuses/mentions_timeline
zwróci listę statusu użytkownika. Po prostu przeanalizuj ten zwrot, szukającin_reply_to_status_id
pasującego do oryginalnego tweetaid
.źródło
status/mentions
.status/mentions_timeline
Oto procedura uzyskiwania odpowiedzi na tweety
[q="to:$tweeterusername", sinceId = $tweetId]
in_reply_to_status_id_str to $tweetid
to odpowiedzi na post.źródło
Oto moje rozwiązanie. Wykorzystuje bibliotekę Abraham's Twitter Oauth PHP: https://github.com/abraham/twitteroauth
Wymaga znajomości atrybutu screen_name użytkownika Twittera, a także atrybutu id_str danego tweeta. W ten sposób możesz uzyskać dowolny kanał konwersacji z tweeta dowolnego użytkownika:
* UPDATE: Odświeżony kod, aby odzwierciedlić dostęp do obiektów w porównaniu z dostępem do tablicy:
źródło
Twitter ma nieudokumentowany interfejs API o nazwie related_results. Otrzymasz odpowiedzi na określony identyfikator tweeta. Nie jestem pewien, na ile niezawodny jest jego eksperymentalny, jednak jest to to samo wywołanie interfejsu API, które jest wywoływane w sieci Twitter.
Używaj na własne ryzyko. :)
Aby uzyskać więcej informacji, sprawdź tę dyskusję na dev.twitter: https://dev.twitter.com/discussions/293
źródło
Tutaj udostępniam prosty kod R, aby pobrać odpowiedź na konkretny tweet
źródło
Nie w łatwy, pragmatyczny sposób. Jest w tym prośba o funkcję:
http://code.google.com/p/twitter-api/issues/detail?id=142
Istnieje kilka witryn internetowych innych firm, które udostępniają interfejsy API, ale często brakuje im statusów.
źródło
Zaimplementowałem to w następujący sposób:
1) statuses / update zwraca identyfikator ostatniego statusu (jeśli parametr include_entities jest prawdziwy) 2) Następnie możesz zażądać statusów / wzmianek i przefiltrować wynik według in_reply_to_status_id. Ten ostatni powinien być równy określonemu identyfikatorowi z kroku 1
źródło
Jak stwierdza satheesh, działa świetnie. Oto kod API REST, którego użyłem
źródło
Na ten sam problem natknąłem się kilka miesięcy temu w pracy, ponieważ wcześniej korzystałem z ich
related_tweets
punktu końcowego w REST V1.Musiałem więc stworzyć obejście, które udokumentowałem tutaj:
http://adriancrepaz.com/twitter_conversations_apiMirror - Github forkTa klasa powinna robić dokładnie to, co chcesz. Pobiera kod HTML witryny mobilnej i analizuje rozmowę. Używam go przez jakiś czas i wydaje się bardzo niezawodny.
Aby pobrać rozmowę ...
Żądanie
Odpowiedź
źródło
Możesz użyć pakietu twarc w pythonie, aby zebrać wszystkie odpowiedzi na tweet.
twarc replies 824077910927691778 > replies.jsonl
Możliwe jest również zebranie wszystkich łańcuchów odpowiedzi (odpowiedzi na odpowiedzi) na tweet za pomocą poniższego polecenia:
twarc replies 824077910927691778 --recursive
źródło
ponieważ statuses / mentions_timeline zwróci 20 ostatnich wzmianek, to nie będzie tak wydajne, aby zadzwonić, i ma ograniczenia, takie jak 75 żądań na okno (15 minut), zamiast tego możemy użyć user_timeline
najlepszy sposób: 1. pobierz parametry screen_name lub user_id ze status / show.
2. teraz użyj user_timeline
GET https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=screen_name&count=count
(screen_name == nazwa, którą otrzymaliśmy From status / show)
(count == 1 do max 200)
count: Określa liczbę tweetów do pobrania, maksymalnie 200 na jedno żądanie.
z wyniku Po prostu przeanalizuj ten wynik, szukając in_reply_to_status_id pasującego do identyfikatora oryginalnego tweeta.
Oczywiście nie jest to idealne rozwiązanie, ale zadziała.
źródło