token = TwitchToken::firstWhere('nick', 'localhorsttv'); if (!$this->token) { $this->line('please acquire a token for localhorsttv first'); return 1; } $channels = Channel::where('twitch_chat', '!=', '')->where('twitch_id', '=', '')->get(); foreach ($channels as $channel) { try { $this->updateChannel($channel); } catch (RequestException $e) { if ($e->response->status() == 401) { $this->token->refresh(); $this->updateChannel($channel); } } } return Command::SUCCESS; } private function updateChannel(Channel $channel) { $this->line($channel->twitch_chat); $login = substr($channel->twitch_chat, 1); $rsp = $this->token->request() ->get('/users', [ 'login' => $login, ]) ->throw(); foreach ($rsp['data'] as $user) { if ($user['login'] != $login) continue; $channel->twitch_id = $user['id']; $channel->save(); } } private $token; }