drfrvbq736383 2016-03-07 06:23
浏览 61
已采纳

如何使用laravel从twitter API获取所有可用的用户搜索记录

I am working on twitter API (https://api.twitter.com/1.1/users/search.json). When I request for a user records using GET request I am getting just first page of records in json first 20 records but I want all records of any specific name which I enter. How to extend the request and store them in database

public function getTwitter() {
    $settings = array(
        'oauth_access_token'        => "xxxxxxxxxxxxxx",
        'oauth_access_token_secret' => "xxxxxxxxxxxxxxxx",
        'consumer_key'              => "xxxxxxxxxxxxxxxxxxxxx",
        'consumer_secret'           => "xxxxxxxxxxxxxxxxxxxxxxx",

    );


    $url           = 'https://api.twitter.com/1.1/users/search.json';
    $getfield      = '?q=name to search';
    $requestMethod = 'GET';

    $twitter = new TwitterAPIExchange($settings);
    $users   = $twitter->setGetfield($getfield)
        ->buildOauth($url, $requestMethod)
        ->performRequest();

    $users = json_decode($users, true);
    // var_dump($users);die();
    for ($i = 0; $i <= 19; $i++) {
        $twitter           = new twitter_user();
        $twitter->user_id  = $users[$i]['id'];
        $twitter->name     = $users[$i]['name'];
        $twitter->sname    = $users[$i]['screen_name'];
        $twitter->location = $users[$i]['location'];
        $twitter->save();

    }

    echo "Data saved";
}

I am using this for loop till 19 because it's giving me 20 records I want to access all available records dynamically.

  • 写回答

1条回答 默认 最新

  • dr5779 2016-03-08 16:32
    关注
     public function full_Record($page){  
    
        $settings = array(
            'oauth_access_token' => "xxxxxxxxxxxxxxxxxxxxxxx",
            'oauth_access_token_secret' => "xxxxxxxxxxxxxxxxxxxx",
            'consumer_key' => "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
            'consumer_secret' => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
            );   
        $url = 'https://api.twitter.com/1.1/users/search.json';
        $getfield = '?q=john&page='. $page;
        $requestMethod = 'GET';
    
        $twitter = new TwitterAPIExchange($settings);
        $users =  $twitter->setGetfield($getfield)
                ->buildOauth($url, $requestMethod)
                ->performRequest();
    
        $users = json_decode($users,true);
        if(empty($users)){
    
    
            echo "Data saved less data available";
        }
        else{
    
                for($i=0;$i<=19;$i++){
    
                    $twitter=new twitter_user();
                    $twitter->user_id=$users[$i]['id'];
                    $twitter->name=$users[$i]['name'];
                    $twitter->sname=$users[$i]['screen_name'];
                    $twitter->location=$users[$i]['location'];
                    $twitter->save();
    
                }
    
                    $page++;
                    $this->full_Record($page);                  
    
                else{
                    echo "Data Saved ok";
                }
    
        }
    

    This Code works as per requirement

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)