/** * This method checks any additional data that is relevant to the specific task * If the task class is not relevant, the method is expected to return TRUE * * @param array $submittedData Reference to the array containing the data submitted by the user * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject Reference to the calling object (Scheduler's BE module) * @return boolean TRUE if validation was ok (or selected class is not relevant), FALSE otherwise */ public function validateAdditionalFields(array &$submittedData, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) { $result = TRUE; $submittedData['pid'] = intval($submittedData['pid']); if ($submittedData['oauthAccessToken'] == "") { $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:moox_social/Resources/Private/Language/locallang_scheduler.xlf:tx_mooxsocial_tasks_twittergettask.oauth_access_token_error'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR); $result = FALSE; } if ($submittedData['oauthAccessTokenSecret'] == "") { $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:moox_social/Resources/Private/Language/locallang_scheduler.xlf:tx_mooxsocial_tasks_twittergettask.oauth_access_token_secret_error'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR); $result = FALSE; } if ($submittedData['consumerKey'] == "") { $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:moox_social/Resources/Private/Language/locallang_scheduler.xlf:tx_mooxsocial_tasks_twittergettask.consumer_key_error'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR); $result = FALSE; } if ($submittedData['consumerKeySecret'] == "") { $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:moox_social/Resources/Private/Language/locallang_scheduler.xlf:tx_mooxsocial_tasks_twittergettask.consumer_key_secret_error'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR); $result = FALSE; } if ($submittedData['screenName'] == "") { $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:moox_social/Resources/Private/Language/locallang_scheduler.xlf:tx_mooxsocial_tasks_twittergettask.screen_name_error'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR); $result = FALSE; } if ($submittedData['email'] != "" && !\TYPO3\CMS\Core\Utility\GeneralUtility::validEmail($submittedData['email'])) { $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:moox_social/Resources/Private/Language/locallang_scheduler.xlf:tx_mooxsocial_tasks_twittergettask.email_error'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR); $result = FALSE; } if ($result) { $config = array('consumer_key' => $submittedData['consumerKey'], 'consumer_secret' => $submittedData['consumerKeySecret'], 'oauth_access_token' => $submittedData['oauthAccessToken'], 'oauth_access_token_secret' => $submittedData['oauthAccessTokenSecret'], 'screenName' => $submittedData['screenName'], 'allowSignedRequest' => false); $twitter = new \TYPO3\MooxSocial\Twitter\TwitterAPIExchange($config); $url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; $requestMethod = "GET"; $getfield = '?screen_name=' . $submittedData['screenName']; try { $rawFeed = json_decode($twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)->performRequest(), $assoc = TRUE); } catch (\Exception $e) { $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:moox_social/Resources/Private/Language/locallang_scheduler.xlf:tx_mooxsocial_tasks_twittergettask.api_error') . " [" . $e->getMessage() . "]", \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR); $result = FALSE; } } return $result; }
/** * execute twitter api request * * @param string $oauthAccessToken * @param string $oauthAccessTokenSecret * @param string $consumerKey * @param string $consumerKeySecret * @param string $screenName * @param string $request * @return array feedData */ public function twitter($oauthAccessToken, $oauthAccessTokenSecret, $consumerKey, $consumerKeySecret, $screenName, $request = "") { $rawFeed = array(); // Get the extensions's configuration $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['moox_social']); if ($oauthAccessToken == "") { $oauthAccessToken = $extConf['fallbackTwitterOauthAccessToken']; } if ($oauthAccessTokenSecret == "") { $oauthAccessTokenSecret = $extConf['fallbackTwitterOauthAccessTokenSecret']; } if ($consumerKey == "") { $consumerKey = $extConf['fallbackTwitterConsumerKey']; } if ($consumerKeySecret == "") { $consumerKeySecret = $extConf['fallbackTwitterConsumerKeySecret']; } if ($oauthAccessToken != "" && $oauthAccessTokenSecret != "" && $consumerKey != "" && $consumerKeySecret != "" && $screenName != "") { $config = array('consumer_key' => $consumerKey, 'consumer_secret' => $consumerKeySecret, 'oauth_access_token' => $oauthAccessToken, 'oauth_access_token_secret' => $oauthAccessTokenSecret, 'screenName' => $screenName, 'allowSignedRequest' => false); $twitter = new \TYPO3\MooxSocial\Twitter\TwitterAPIExchange($config); if ($request == "init") { $request = "&count=200"; } elseif ($request == "") { $request = "&count=50"; } $url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; $requestMethod = "GET"; $getfield = '?screen_name=' . $screenName . $request; $rawFeed = json_decode($twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)->performRequest(), $assoc = TRUE); } return $rawFeed; }