public function handle()
 {
     $request_token = ['token' => $this->userTwitterToken->short_lived_token, 'secret' => $this->userTwitterToken->long_lived_token];
     // $twitter = App::make('Thujohn\Twitter\Twitter');
     $twitter = Twitter::reconfig($request_token);
     $twitterSincePaginatorData = new GetTwitterSinceIdForPagination($this->userTwitterToken->user_id);
     $twitterSinceId = $twitterSincePaginatorData->retrieve();
     $firstCall = $twitterSinceId === 0 ? true : false;
     do {
         $twitterSincePaginatorData = new GetTwitterSinceIdForPagination($this->userTwitterToken->user_id);
         $twitterSinceId = $twitterSincePaginatorData->retrieve();
         $twitterCallParams = array('id' => $this->userTwitterToken->entity_id, 'count' => 100, 'format' => 'json');
         if ($twitterSinceId > 0) {
             $twitterCallParams['since_id'] = $twitterSinceId;
         }
         $checkIfSocialMediaTokenHasFilters = new CheckIfSocialMediaTokenHasFilters($this->userTwitterToken);
         $filter = $checkIfSocialMediaTokenHasFilters->get();
         $tweets = json_decode(Twitter::getUserTimeline($twitterCallParams));
         foreach ($tweets as $tweet) {
             $assignToDB = false;
             if ($filter) {
                 $checkIfTweetHasFilter = new CheckIfTweetHasFilter($tweet->entities->hashtags, $filter->filter);
                 if ($checkIfTweetHasFilter->check()) {
                     $assignToDB = true;
                 }
             } else {
                 $assignToDB = true;
             }
             if ($assignToDB) {
                 $assignTweetsToDb = new AssignTweetsToDatabase($this->userTwitterToken->user_id, $tweet);
                 $assignTweetsToDb->assign();
             }
         }
         $twitterPaginatorData = new GetTwitterMaxIdForPagination($tweets);
         $twitterMaxId = $twitterPaginatorData->extract();
     } while (!$firstCall && count($tweets) > 0);
 }
 public function callback(Request $request)
 {
     if ($request->session()->has('oauth_request_token')) {
         $request_token = ['token' => $request->session()->get('oauth_request_token'), 'secret' => $request->session()->get('oauth_request_token_secret')];
         Twitter::reconfig($request_token);
         $oauth_verifier = false;
         if ($request->has('oauth_verifier')) {
             $oauth_verifier = $request->input('oauth_verifier');
         }
         $token = Twitter::getAccessToken($oauth_verifier);
         if (!isset($token['oauth_token_secret'])) {
             return route('twitter.login')->with('flash_error', 'We could not log you in on Twitter.');
         }
         $credentials = Twitter::getCredentials();
         if (is_object($credentials) && !isset($credentials->error)) {
             $request->session()->put('access_token', $token);
             $request->session()->put('credentials', $credentials);
             return redirect('login')->with('flash_notice', 'Congrats! You\'ve successfully signed in!');
         }
         return route('twitter.error')->with('flash_error', 'Crab! Something went wrong while signing you up!');
     }
 }