1

私は tmhOAuth.php / class を使用して twitter にログインしています。ログインとツイートの送信に成功しました。

friends.php スクリプトを使用しようとすると、データベースへの挿入で問題が発生します。私の問題は、コード内の $paging 変数のどこかにあると思います。7回しかループしていないからです。私は 626 人をフォローしているので、私の $ids は 626 で、$paging は 7 です。

Webブラウザでphpを実行すると、7人のフォロワーしか抽出できません(つまり、ユーザー#626をフォローし、ユーザー526をフォローし、ユーザー426をフォローしています...)各ページリクエストで最後のユーザーをエコーし​​ているようです. これは、PAGESIZE 定数を介して一度に 100 個のユーザー ID を要求することが原因の 1 つです。$paging を数値 626 などの異なる数値で調整すると、 {"errors":[{"code":17,"message":"No user matching for specified terms"}]} が表示されます

残念ながら、これはかなり単純な php ループの問題だと思いますが、これをクラックしようとして時間を費やした後、もはや正しく考えることができなくなりました。

前もって感謝します。

define('PAGESIZE', 100);
require 'tmhOAuth.php';
require 'tmhUtilities.php';

if ($tmhOAuth->response['code'] == 200) {
$data = json_decode($tmhOAuth->response['response'], true);
$ids += $data['ids'];
$cursor = $data['next_cursor_str'];
} else {
echo $tmhOAuth->response['response'];
break;
}
endwhile;

// lookup users
$paging = ceil(count($ids) / PAGESIZE);
$users = array();
for ($i=0; $i < $paging ; $i++) {
$set = array_slice($ids, $i*PAGESIZE, PAGESIZE);
$tmhOAuth->request('GET', $tmhOAuth->url('1/users/lookup'), array(
'user_id' => implode(',', $set)
));

// check the rate limit
check_rate_limit($tmhOAuth->response);

if ($tmhOAuth->response['code'] == 200) {
$data = json_decode($tmhOAuth->response['response'], true);
if ($tmhOAuth->response['code'] == 200) {
$data = json_decode($tmhOAuth->response['response'], true);
$name = array();
foreach ($data as $val)
    {
        $name = $data[0]['screen_name'];
    }
    echo "this is the screen name  " .$name. "\n";
    $users += $data;
} else {
echo $tmhOAuth->response['response'];
break;
}

}
var_dump($users);
?>

エコーし、解析してデータベースに挿入しようとしているデータは、標準の Twitter JSON データであるため、メッセージには含めません。どんな助けでも

4

1 に答える 1

0

問題が解決しました:

  foreach ($data as $val)
{
    $name = $val['screen_name'];
    echo "this is the screen name  " .$name. "\n";
    $users[] = $name;
}
于 2011-08-05T04:25:45.253 に答える