oauth = $oauth; $this->httpClient = new HttpClient([ 'exceptions' => true, ]); } public function fails($values) { $this->setConfigDynamically($values); try { Socialite::driver('twitter')->redirect(); } catch (Exception $e) { return $this->getErrorMessage($e); } } private function setConfigDynamically($settings) { if ($twitterId = Arr::get($settings, 'twitter_id')) { Config::set('services.twitter.client_id', $twitterId); } if ($twitterSecret = Arr::get($settings, 'twitter_secret')) { Config::set('services.twitter.client_secret', $twitterSecret); } } /** * @param Exception $e * @return array */ private function getErrorMessage(Exception $e) { if (\Str::contains($e->getMessage(), 'code="415"')) { return ['twitter_group' => 'Site url is not present in "Callback URL" field on your twitter app.']; } return $this->getDefaultError(); } private function getDefaultError() { return ['twitter_group' => 'These twitter credentials are not valid.']; } }