কোনও টুইটারের উত্তরগুলি পাওয়ার জন্য কি টুইটার এপিআই-তে কোনও উপায় আছে? ধন্যবাদ
উত্তর:
আমি যা বুঝি সেগুলি থেকে সরাসরি তা করার কোনও উপায় নেই (অন্তত এখনই নয়)। এমন কিছু লাগবে যা যুক্ত করা উচিত। তারা সম্প্রতি কিছু 'পুনঃটুইট' ক্ষমতা যুক্ত করেছে, এটি যুক্ত করার পক্ষে যুক্তিযুক্ত বলে মনে হয়।
এটি করার একটি সম্ভাব্য উপায় এখানে প্রথম নমুনার টুইটের ডেটা (থেকে 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
এমন পোস্টগুলির জবাব।এখানে আমার সমাধান। এটি আব্রাহামের টুইটার ওউথ পিএইচপি লাইব্রেরি ব্যবহার করে: https://github.com/abraham/twitteroauth
এটিতে আপনাকে টুইটার ব্যবহারকারীর স্ক্রিন_নামের বৈশিষ্ট্য পাশাপাশি প্রশ্নে থাকা টুইটের আইডি_স্ট্রিটিউট সম্পর্কে জানতে হবে। এইভাবে, আপনি যেকোন স্বেচ্ছাচারী ব্যবহারকারীর টুইট থেকে একটি স্বতন্ত্র কথোপকথন ফিড পেতে পারেন:
* আপডেট: অবজেক্ট অ্যাক্সেস বনাম অ্যারে অ্যাক্সেস প্রতিফলিত করতে রিফ্রেশ কোড:
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;
}
}
টুইটারের সম্পর্কিত_আরসাল্টস নামে একটি নিবন্ধিত এপিআই রয়েছে। এটি আপনাকে নির্দিষ্ট টুইট আইডির জবাব দেবে। এটি পরীক্ষামূলক হিসাবে এটি কতটা নির্ভরযোগ্য তা নিশ্চিত নয়, তবে এটি টুইটার ওয়েবে যে একই অ্যাপি কল call
আপনার নিজের ঝুঁকিতে ব্যবহার করুন। :)
https://api.twitter.com/1/related_results/show/172019363942117377.json?include_entities=1
আরও তথ্যের জন্য, এই আলোচনাটি dev.twitter এ দেখুন: https://dev.twitter.com/discussion/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
তৃতীয় পক্ষের কয়েকটি ওয়েবসাইট রয়েছে যা এপিআই সরবরাহ করে তবে তারা প্রায়শই স্ট্যাটাস মিস করে।
আমি এটি নিম্নলিখিত উপায়ে প্রয়োগ করেছি:
1) স্ট্যাটাসস / আপডেট রিটার্নের আইডি শেষ স্ট্যাটাসের (যদি অন্তর্ভুক্ত_েনটিটিস সত্য হয়) 2) তারপরে আপনি স্ট্যাটাসগুলি / উল্লেখগুলির জন্য অনুরোধ করতে পারেন এবং ফলাফলটি in_reply_to_status_id এর মাধ্যমে ফিল্টার করতে পারেন। দ্বিতীয়টি ধাপ 1 থেকে নির্দিষ্ট আইডির সমান হওয়া উচিত
রাজ্যগুলি যেমন সত্যে এটি দুর্দান্ত কাজ করে। এখানে আমি কী ব্যবহার করেছি রিস্টের এপিআই কোড
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
রিস্ট ভি 1 তে শেষ পয়েন্টটি ব্যবহার করছিলাম ।
সুতরাং আমাকে একটি কার্যনির্বাহ তৈরি করতে হয়েছিল, যা আমি এখানে নথিভুক্ত করেছি:
http://adriancrepaz.com/twitter_conversations_api আয়না - গিথুব কাঁটাচামচ
এই শ্রেণীর আপনার যা ইচ্ছা ঠিক তা করা উচিত। এটি মোবাইল সাইটের এইচটিএমএল স্ক্র্যাপ করে এবং কথোপকথনকে পার্স করে। আমি এটি কিছুক্ষণ ব্যবহার করেছি এবং এটি খুব নির্ভরযোগ্য বলে মনে হচ্ছে।
কথোপকথনটি আনতে ...
অনুরোধ
<?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
যেহেতু স্ট্যাটাসস / উল্লেখ_টাইমলাইন 20 অতি সাম্প্রতিক উল্লেখটি ফিরিয়ে দেবে এটি কল করার মতো দক্ষ হবে না, এবং এটির উইন্ডোতে 15 টি অনুরোধের (15 মিনিট) মত সীমাবদ্ধতা রয়েছে যার দ্বারা আমরা ব্যবহারকারী_টাইমলাইন ব্যবহার করতে পারি
সর্বোত্তম উপায়: ১. অবস্থা / শো থেকে স্ক্রিন_নাম বা ইউজার_আইডি পরামিতি পান।
2. এখন ব্যবহার user_timeline
তাহলে GET https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=screen_name&count=count
(স্ক্রিন_নাম == নাম যা আমরা স্থিতি / প্রদর্শন থেকে পেয়েছি)
(গণনা == 1 থেকে সর্বোচ্চ 200 পর্যন্ত)
গণনা: স্বতন্ত্র অনুরোধের জন্য সর্বোচ্চ 200 টি পর্যন্ত চেষ্টা এবং পুনরুদ্ধার করতে টুইটের সংখ্যা নির্দিষ্ট করে।
ফলাফলটি থেকে কেবল পার্স করুন যা মূল টুইটের আইডিটির সাথে মিলে একটি ইন-রিপ্লাই_ টু_স্ট্যাটাস_আইডি খুঁজছেন return
স্পষ্টতই, এটি আদর্শ নয়, তবে এটি কার্যকর হবে।