क्या ट्विटर एपीआई में किसी विशेष ट्वीट का जवाब पाने का एक तरीका है? धन्यवाद
जवाबों:
जो मैं समझता हूं, वहां ऐसा करने का कोई तरीका नहीं है सीधे (कम से कम अब नहीं)। कुछ ऐसा लगता है जिसे जोड़ा जाना चाहिए। उन्होंने हाल ही में कुछ 'रिट्वीट' क्षमताएं जोड़ी हैं, साथ ही इसे जोड़ना भी तर्कसंगत लगता है।
यह करने के लिए एक संभव तरीका है, पहला नमूना ट्वीट डेटा (से 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
।
status/mentions
।
status/mentions_timeline
यहाँ एक ट्वीट के लिए उत्तर प्राप्त करने की प्रक्रिया है
[q="to:$tweeterusername", sinceId = $tweetId]
in_reply_to_status_id_str to $tweetid
पोस्ट के लिए उत्तर हैं।यहाँ मेरा समाधान है। यह अब्राहम के ट्विटर 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;
}
}
Twitter के पास संबंधित_श्रेष्ठ नाम का एक अनिर्दिष्ट एपी है। यह आपको निर्दिष्ट ट्वीट आईडी के लिए उत्तर देगा। यह सुनिश्चित नहीं है कि यह अपने प्रयोगात्मक रूप में कितना विश्वसनीय है, हालांकि यह वही एप कॉल है जो ट्विटर वेब पर कहा जाता है।
अपने जोखिम पार इस्तेमाल करें। :)
https://api.twitter.com/1/related_results/show/172019363942117377.json?include_entities=1
अधिक जानकारी के लिए, dev.twitter: https://dev.twitter.com/discussions/293 पर इस चर्चा को देखें
यहां मैं विशिष्ट ट्वीट के उत्तर को प्राप्त करने के लिए सरल आर कोड साझा कर रहा हूं
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.
आसान व्यावहारिक तरीके से नहीं। इसके लिए एक सुविधा अनुरोध है:
http://code.google.com/p/twitter-api/issues/detail?id=142
कुछ तृतीय-पक्ष वेबसाइटें हैं जो एपीआई प्रदान करती हैं, लेकिन वे अक्सर स्थिति को याद करते हैं।
जैसा कि राज्यों ने कहा है कि यह बहुत अच्छा काम करता है। यहाँ 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;
मैं उसी मुद्दे पर कुछ महीने पहले काम पर आया था, जैसा कि मैं पहले related_tweets
REST 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
)
)
....
)
)
आप एक ट्वीट के सभी उत्तरों को इकट्ठा करने के लिए अजगर में ट्वार्क पैकेज का उपयोग कर सकते हैं ।
twarc replies 824077910927691778 > replies.jsonl
साथ ही, नीचे दिए गए आदेश का उपयोग करके एक ट्वीट के सभी उत्तर श्रृंखलाओं (उत्तरों के जवाब) को इकट्ठा करना संभव है:
twarc replies 824077910927691778 --recursive
चूंकि स्थितियां / उल्लेख_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 की तलाश में लौटते हैं।
जाहिर है, यह आदर्श नहीं है, लेकिन यह काम करेगा।