logger->error('Webhook '.$this->_getName().' is missing necessary configuration. Skipping...'); return; } // Set up Twitter OAuth /** @var HandlerStack $stack */ $stack = clone $this->http_client->getConfig('handler'); $middleware = new \GuzzleHttp\Subscriber\Oauth\Oauth1([ 'consumer_key' => trim($config['consumer_key']), 'consumer_secret' => trim($config['consumer_secret']), 'token' => trim($config['token']), 'token_secret' => trim($config['token_secret']), ]); $stack->push($middleware); $raw_vars = [ 'message' => $config['message'] ?? '', ]; $vars = $this->_replaceVariables($raw_vars, $event->getNowPlaying()); // Dispatch webhook $this->logger->debug('Posting to Twitter...'); try { $response = $this->http_client->request('POST', 'https://api.twitter.com/1.1/statuses/update.json', [ 'auth' => 'oauth', 'handler' => $stack, 'form_params' => [ 'status' => $vars['message'], ], ]); $this->logger->debug( sprintf('Twitter returned code %d', $response->getStatusCode()), ['response_body' => $response->getBody()->getContents()] ); } catch(TransferException $e) { $this->logger->error(sprintf('Error from Twitter (%d): %s', $e->getCode(), $e->getMessage())); } } }