/** * @param MauticFactory $factory * @param $lead * @param $event * * @return bool */ public function sendTweetAction($lead, $event) { $tweetSent = false; /** @var \MauticPlugin\MauticSocialBundle\Integration\TwitterIntegration $twitterIntegration */ $twitterIntegration = $this->integrationHelper->getIntegrationObject('Twitter'); // Setup clickthrough for URLs in tweet $this->clickthrough = ['source' => ['campaign', $event['campaign']['id']]]; $leadArray = $lead->getProfileFields(); if (empty($leadArray['twitter'])) { return false; } $tweetText = $event['properties']['tweet_text']; $tweetText = $this->parseTweetText($tweetText, $leadArray); $tweetUrl = $twitterIntegration->getApiUrl('statuses/update'); $status = ['status' => $tweetText]; // fire the tweet $sendTweet = $twitterIntegration->makeRequest($tweetUrl, $status, 'POST', ['append_callback' => false]); // verify the tweet was sent by checking for a tweet id if (is_array($sendTweet) && array_key_exists('id_str', $sendTweet)) { $tweetSent = true; } return $tweetSent ? ['timeline' => $tweetText, 'response' => $sendTweet] : ['failed' => 1, 'response' => $sendTweet]; }