私は 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 データであるため、メッセージには含めません。どんな助けでも