1
我已经有一个脚本,收集来自朋友/ ids的前5000个用户。 我想收集所有的朋友,所以我必须通过游标移动来获取它们。我想我理解光标的工作方式,但仍无法使其工作。我试图接受next_cursor,但不知道我做错了什么。Twitter API游标PHP
这似乎是我试图得到的游标没有正确调用。
想与这些反馈,因为twitter的API没有给出任何实际的例子。
<?php
header("Content-Type: text/html;charset=utf-8");
ini_set('display_errors', 1);
require_once('TwitterAPIExchange.php');
session_start();
$user = $_POST['nombre'];
$_SESSION['user']=$_POST['nombre'];
$usuario = $user;
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "twitter";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
'oauth_access_token' => "k1",
'oauth_access_token_secret' => "k2",
'consumer_key' => "k3",
'consumer_secret' => "k4"
);
//https://api.twitter.com/1/followers/ids.json?cursor=-1&screen_name=microsoft
$cursor = "cursor=".-1;
$url = 'https://api.twitter.com/1.1/friends/ids.json';
$getfield = '?'.$cursor.'screen_name='.$usuario;
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
$json = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest(true, array(CURLOPT_CAINFO => dirname(__FILE__) . '/cacert.pem'));
$arrayFriends = json_decode($json, true,512,JSON_BIGINT_AS_STRING);
echo 'Usuario' .";". 'Nombre'.";".'Location'.";".'Numero Amigos'.";".'Numero followers'.";".'Descripcion'."\n";
foreach($arrayFriends['next_cursor'] as $curs){
foreach($arrayFriends['ids'] as $obj){
while($cursor != 0){
//$cursor->$arrayFriends['ids']->next_cursor;
$cursor = $curs;
//$cursor = "&cursor=" + $cursor;
$sql = "INSERT INTO friends (user, id) VALUES ('$usuario','$obj')";
if ($conn->query($sql) === TRUE) {
//echo "New record created successfully";
header("Location:logic.php");
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
}
}
$conn->close();
?>
嗨,有人可以给我一点的反馈。我试图解决这个问题,但是在这个问题上浪费了很多时间。 – seyroku
哟家伙,仍然不工作,需要建议或什么! – seyroku
我正在共享使用光标提取所有朋友的代码。但是,这是一个很好的做法,可以一次性获取所有朋友。您仍然可以抓取3000个朋友,并允许每个请求提供15个请求/ 15分钟窗口和最多200个结果。 宁可next_cursor存储在数据库中,并从数据库中检索光标价值作出新的要求。你可以为此使用cron-job。 – prograshid