एक विशेष ट्वीट का जवाब, ट्विटर एपीआई


85

क्या ट्विटर एपीआई में किसी विशेष ट्वीट का जवाब पाने का एक तरीका है? धन्यवाद


जवाबों:


52

जो मैं समझता हूं, वहां ऐसा करने का कोई तरीका नहीं है सीधे (कम से कम अब नहीं)। कुछ ऐसा लगता है जिसे जोड़ा जाना चाहिए। उन्होंने हाल ही में कुछ 'रिट्वीट' क्षमताएं जोड़ी हैं, साथ ही इसे जोड़ना भी तर्कसंगत लगता है।

यह करने के लिए एक संभव तरीका है, पहला नमूना ट्वीट डेटा (से 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>
     ...

से status/showआप यूजर की आई.डी. फिर statuses/mentions_timelineएक उपयोगकर्ता के लिए स्थिति की सूची लौटाएगा। बस ऐसे ही वापसी एक की तलाश में पार्स in_reply_to_status_idमिलान मूल ट्वीट के id


कहते हैं कि user2 ने user1 के ट्वीट का जवाब दिया। User1 के ट्वीट से यह पता लगाने के लिए, मुझे user1 के लिए उल्लेख की आवश्यकता होगी। लेकिन उस स्थिति में क्या जब मैं user1 के रूप में प्रमाणित नहीं कर सकता? सार्वजनिक रूप से पहुंच के बिना उल्लेख नहीं है?
Letronje

@letronje ऐसा नहीं है कि मुझे पता है - आप ट्वीट में '@ user1' को खोजने के लिए खोज एपीआई का उपयोग कर सकते हैं, लेकिन मुझे नहीं लगता कि उपयोग करने में उतना विश्वसनीय होगा status/mentions
टिम लिटल

1
मूर्तियों की तरह दिखता है / उल्लेख हटा दिया गया है, तो मैं खोज / ट्वीट्स q = @ screenname बजाय पार्स चाहते हैं:? Dev.twitter.com/docs/api/1.1/get/search/tweets
Dunc

4
@ डंक ऐसा लगता है कि इसे सिर्फ बदल दिया गया हैstatus/mentions_timeline
टिम

@ समय अच्छा बिंदु। लेकिन मेरा उपयोग मामला लेट्रॉन्ज के समान है (यानी ट्वीट किसी से भी हो सकता है) इसलिए मुझे इसके बजाय खोज का उपयोग करने की आवश्यकता है।
डंके

51

यहाँ एक ट्वीट के लिए उत्तर प्राप्त करने की प्रक्रिया है

  1. जब आप ट्वीट को स्टोर करते हैं ट्वीटआईडी यानि, id_str
  2. ट्विटर खोज एपीआई का उपयोग करके निम्नलिखित प्रश्न करें [q="to:$tweeterusername", sinceId = $tweetId]
  3. सभी परिणामों को लूप करें, मेल खाते परिणाम in_reply_to_status_id_str to $tweetidपोस्ट के लिए उत्तर हैं।

10

यहाँ मेरा समाधान है। यह अब्राहम के ट्विटर Oauth PHP पुस्तकालय का उपयोग करता है: https://github.com/abraham/twitteroauth

यह आपको ट्विटर उपयोगकर्ता की स्क्रीन_नाम विशेषता के साथ-साथ प्रश्न में ट्वीट की id_str विशेषता जानने की आवश्यकता है। इस तरह, आप किसी भी मनमाने उपयोगकर्ता के ट्वीट से एक मनमाना वार्तालाप फ़ीड प्राप्त कर सकते हैं:

* अद्यतन: वस्तु पहुंच बनाम सरणी पहुंच को प्रतिबिंबित करने के लिए ताज़ा कोड:

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;
     }

}

2
यह मतदान क्यों किया गया? यह ठीक वैसे ही काम करता है जैसा कि कहा गया है और समस्या का सटीक उत्तर देता है। इसके अलावा, मेरी विधि @vsubbotin से भिन्न है कि आप अपने स्वयं के बजाय किसी भी कलरव की आईडी का उपयोग कर सकते हैं।
lincolnberryiii

3
यह अच्छा है, लेकिन मूल्यवान दर सीमा (180 प्रति ओउथ) खा सकते हैं। इस विधि के साथ 180 ट्वीट्स चलते हैं ... फिर देखें!
माइक बारविक

8

Twitter के पास संबंधित_श्रेष्ठ नाम का एक अनिर्दिष्ट एपी है। यह आपको निर्दिष्ट ट्वीट आईडी के लिए उत्तर देगा। यह सुनिश्चित नहीं है कि यह अपने प्रयोगात्मक रूप में कितना विश्वसनीय है, हालांकि यह वही एप कॉल है जो ट्विटर वेब पर कहा जाता है।

अपने जोखिम पार इस्तेमाल करें। :)

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

अधिक जानकारी के लिए, dev.twitter: https://dev.twitter.com/discussions/293 पर इस चर्चा को देखें


34
यह एपीआई अब सक्रिय नहीं है
मैथ्यू

हाँ। जैसा कि मैथ्यू ने कहा, यह अधिक सक्रिय नहीं है। यह कहता है {u'message ': u'Sorry, वह पृष्ठ मौजूद नहीं है', u'code ': 34}
shadab.tughlaq

7

यहां मैं विशिष्ट ट्वीट के उत्तर को प्राप्त करने के लिए सरल आर कोड साझा कर रहा हूं

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.

3

आसान व्यावहारिक तरीके से नहीं। इसके लिए एक सुविधा अनुरोध है:

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

कुछ तृतीय-पक्ष वेबसाइटें हैं जो एपीआई प्रदान करती हैं, लेकिन वे अक्सर स्थिति को याद करते हैं।


gnip.com मूल रूप से अब ट्विटर डेटा प्राप्त करने के लिए केवल तृतीय-पक्ष स्थान है।
अबराम

3

मैंने इसे निम्नलिखित तरीके से लागू किया है:

1) स्थितियां / अपडेट अंतिम स्थिति का आईडी रिटर्न (यदि शामिल हैं_ सत्य हैं) 2) तो आप स्थिति / उल्लेख का अनुरोध कर सकते हैं और परिणाम in_reply_to_status_id द्वारा फ़िल्टर कर सकते हैं। उत्तरार्द्ध चरण 1 से विशेष आईडी के बराबर होना चाहिए


2

जैसा कि राज्यों ने कहा है कि यह बहुत अच्छा काम करता है। यहाँ REST API कोड है जो मैंने उपयोग किया है

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;

2

मैं उसी मुद्दे पर कुछ महीने पहले काम पर आया था, जैसा कि मैं पहले related_tweetsREST V1 में उनके समापन बिंदु का उपयोग कर रहा था ।

इसलिए मुझे एक वर्कअराउंड बनाना था, जिसे मैंने यहाँ प्रलेखित किया है:
http://adriancrepaz.com/twitter_conversations_api मिरर - जीथब फोर्क

इस वर्ग को वही करना चाहिए जो आप चाहते हैं। यह मोबाइल साइट के HTML को स्क्रैप करता है, और एक वार्तालाप को पार्स करता है। मैंने इसे कुछ समय के लिए उपयोग किया है और यह बहुत विश्वसनीय लगता है।

बातचीत करने के लिए ...

निवेदन

<?php

require_once 'acTwitterConversation.php';

$twitter = new acTwitterConversation;
$conversation = $twitter->fetchConversion(324215761998594048);
print_r($conversation);

?>

प्रतिक्रिया

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
                        )
                )
             ....             
        )
)

2

आप एक ट्वीट के सभी उत्तरों को इकट्ठा करने के लिए अजगर में ट्वार्क पैकेज का उपयोग कर सकते हैं ।

twarc replies 824077910927691778 > replies.jsonl

साथ ही, नीचे दिए गए आदेश का उपयोग करके एक ट्वीट के सभी उत्तर श्रृंखलाओं (उत्तरों के जवाब) को इकट्ठा करना संभव है:

twarc replies 824077910927691778 --recursive


क्या जावास्क्रिप्ट में ऐसा करने का कोई तरीका है?
यशत्रेय

मुझे यकीन नहीं है, मैंने जांच नहीं की है, अगर आपको कुछ मिला है तो आपको बता दूंगा।
पौरिया बबवे

1

चूंकि स्थितियां / उल्लेख_timeline 20 सबसे हाल के उल्लेख को लौटाएगी , जो कॉल करने के लिए कुशल नहीं होगा, और इसकी सीमाएं प्रति विंडो 75 अनुरोध (15min) जैसी हैं, इसके लिए हम user_timeline का उपयोग कर सकते हैं

सबसे अच्छा तरीका: 1. स्थिति / शो से screen_name या user_id पैरामीटर प्राप्त करें।
2. अब user_timeline
GET https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=screen_name&count=count का उपयोग करें

(स्क्रीन_नाम == जो नाम हमें स्टेटस / शो से मिला है)
(गिनती == 1 से अधिकतम 200 तक)
गणना: अधिकतम 200 प्रति अलग-अलग अनुरोधों को आज़माने और पुनः प्राप्त करने के लिए ट्वीट्स की संख्या निर्दिष्ट करता है।

परिणाम से बस पार्स जो मूल ट्वीट की आईडी से मेल खाते एक in_reply_to_status_id की तलाश में लौटते हैं।

जाहिर है, यह आदर्श नहीं है, लेकिन यह काम करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.