initializedClients[$credentials->getConsumerKey()])) { return $this->initializedClients[$credentials->getConsumerKey()]; } if (!$this->credentialsAreConfigured($credentials)) { throw new PluginNotConfiguredException('Oauth1a Credentials or URL is missing'); } $this->initializedClients[$credentials->getConsumerKey()] = $this->buildClient($credentials); return $this->initializedClients[$credentials->getConsumerKey()]; } private function buildClient(CredentialsInterface $credentials): Client { $stack = HandlerStack::create(); $stack->push($this->createOauth1($credentials)); return new Client( [ 'handler' => $stack, 'base_uri' => $credentials->getAuthUrl(), 'auth' => 'oauth', ] ); } private function createOauth1(CredentialsInterface $credentials): Oauth1 { $config = [ 'consumer_key' => $credentials->getConsumerKey(), 'consumer_secret' => $credentials->getConsumerSecret(), ]; if ($credentials->getToken() && $credentials->getTokenSecret()) { $config['token'] = $credentials->getToken(); $config['token_secret'] = $credentials->getTokenSecret(); } return new Oauth1($config); } private function credentialsAreConfigured(CredentialsInterface $credentials): bool { return !empty($credentials->getAuthUrl()) && !empty($credentials->getConsumerKey()) && !empty($credentials->getConsumerSecret()); } }