0

特定のユーザーの 100 を超える Twitter フォロワーを取得する次のコードを作成しました。

<?php
$cursor = -1;
$account_from = 'twitterapi';
do
{
$json = file_get_contents('http://api.twitter.com/1/followers/ids.json?cursor='.$cursor.'&screen_name='.$account_from.'');

$accounts = json_decode($json);


foreach ($accounts->ids as $account)
{

        $a[] = $account ; 


}
$cursor = $accounts->next_cursor;


}
while ($cursor > 0);


    $n = ceil(count($a) / 100) ; 
    $b = array_chunk($a, 100) ; 


    for($i=0 ; $i<$n ; $i++) {

        $user = ''; 

        for($j=0 ; $j<count($b[$i]) ; $j++) {

                    $user =  $user.$b[$i][$j].',' ;


        }

        $json=file_get_contents('http://api.twitter.com/1/users/lookup.json?user_id='.$user.'') ;
        $fo= json_decode($json);

        foreach ($fo as $key => $jsons) {

             foreach($jsons as $key => $value) {

                     if($key == 'screen_name'){

                             $arr[] = $value;

                    }

            }

        }

    }

    return $arr ; 



?>

しかし、ご覧のとおり、HTTP リクエストにはボトルネックが多すぎます。ユーザーに多くのフォロワーがいると、PHP の最大実行制限により、スクリプトがタイムアウトすることがあります。

ただし、これによると、より大きなリクエストには POST を使用する必要があります。代わりに POST を使用する方法がわかりません。

どんな助けでも大歓迎です。

4

2 に答える 2

0

file_get_contents を使用すると、POST リクエストを送信できません。基本的に cURL のクリーンな OOP ラッパーであるGuzzleを使用することをお勧めします。「ツアー」ページには、Twitter API の例もあります

于 2012-06-25T23:03:48.067 に答える