【发布时间】:2012-06-23 00:04:24
【问题描述】:
我现在有几千个 Twitter 关注者,到目前为止,我一直在手动关注他们。我现在想用 PHP 自动化这个过程,因为跟踪每个人可能需要很长时间。
我找到了一个由 Abraham Williams 创建的 PHP twitter 库,并开始编写一些代码。
但是,每次我运行脚本时,我需要跟进的用户数量都不正确!这是我的编码错误,还是 Twitter API 的工作原理?
这是我的代码:
<?php
require_once 'twitteroauth/twitteroauth.php';
define('CONSUMER_KEY', '');
define('CONSUMER_SECRET', '');
define('ACCESS_TOKEN', '');
define('ACCESS_TOKEN_SECRET', '');
ob_start();
set_time_limit(0);
function autoFollow($action){
//auth with twitter.
$toa = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
//get the last 5000 followers
$followers = $toa->get('followers/ids', array('cursor' => -1));
$followerIds = array();
foreach ($followers->ids as $i => $id) {
$followerIds[] = $id;
}
//get the last 5000 people you've followed
$friends = $toa->get('friends/ids', array('cursor' => -1));
$friendIds = array();
foreach ($friends->ids as $i => $id) {
$friendIds[] = $id;
}
if($action=="unfollow"){
//unfollow all users that aren't following back.
$usersNotFollowingBackcount = 0;
$usersNotFollowingBack = array();
foreach($friendIds as $id){
if(!in_array($id,$followerIds) ){
array_push($usersNotFollowingBack, $id);
//unfollow the user
//$toa->post('friendships/destroy', array('id' => $id));
$usersNotFollowingBackcount++;
echo $usersNotFollowingBackcount.' users unfollowed so far</br>';
ob_flush();
flush();
}
}
echo sizeof($usersNotFollowingBack).' users who weren\'t following you back have now been unfollowed!';
}
if($action =="follow"){
//follow all users that you're not following back.
$usersYoureNotFollowingBackcount = 0;
$usersYoureNotFollowingBack = array();
foreach($followerIds as $id){
if(!in_array($id,$friendIds) ){
array_push($usersYoureNotFollowingBack, $id);
//follow the user
//$toa->post('friendships/create', array('id' => $id));
$usersYoureNotFollowingBackcount++;
echo $usersYoureNotFollowingBackcount.' users followed back so far</br>';
ob_flush();
flush();
}
}
echo sizeof($usersYoureNotFollowingBack).' users have been followed back!';
}
}
if($_GET['action']){
autoFollow($_GET['action']);
ob_end_flush();
}
?>
【问题讨论】:
-
你为什么要关注这么多人,以至于你不得不把它自动化?
-
然后你需要一个脚本来阻止来自你关注的人的所有传入推文。
-
我在 Twitter 上关注的用户中有 80% 是朋友,所以我不介意在我的时间线上看到他们的更新 :)
-
只是一个想法 - 你可以使用 ifttt 食谱来做到这一点,如果他们关注你,它会自动跟随用户。这是食谱:ifttt.com/recipes/19225
-
@potench - 很抱歉直到现在才回复,过去 12 天我一直在度假。 IFTTT 似乎真的很有用,我不敢相信我以前从未遇到过它!在接下来的几天里,我会尝试一下。非常感谢。
标签: php twitter twitter-follow