You are here

class DefaultController in jQuery social stream 8.2

Same name and namespace in other branches
  1. 8 src/Controller/DefaultController.php \Drupal\jquery_social_stream\Controller\DefaultController

Default controller for the jquery_social_stream module.

Hierarchy

Expanded class hierarchy of DefaultController

File

src/Controller/DefaultController.php, line 15
Contains \Drupal\jquery_social_stream\Controller\DefaultController.

Namespace

Drupal\jquery_social_stream\Controller
View source
class DefaultController extends ControllerBase {

  /**
   * Twitter callback for social stream.
   */
  public function jquery_social_stream_twitter_callback() {
    $config = \Drupal::config('jquery_social_stream.settings');
    $consumer_key = $config
      ->get('twitter_api_key');
    $consumer_secret = $config
      ->get('twitter_api_secret');
    $oauth_access_token = $config
      ->get('twitter_access_token');
    $oauth_access_token_secret = $config
      ->get('twitter_access_token_secret');
    switch ($_GET['url']) {
      case 'timeline':
        $rest = 'statuses/user_timeline';
        $params = array(
          'count' => $_GET['count'],
          'include_rts' => $_GET['include_rts'],
          'exclude_replies' => $_GET['exclude_replies'],
          'screen_name' => $_GET['screen_name'],
        );
        break;
      case 'search':
        $rest = "search/tweets";
        $params = array(
          'q' => $_GET['query'],
          'count' => $_GET['count'],
          'include_rts' => $_GET['include_rts'],
        );
        break;
      case 'list':
        $rest = "lists/statuses";
        $params = array(
          'list_id' => $_GET['list_id'],
          'count' => $_GET['count'],
          'include_rts' => $_GET['include_rts'],
        );
        break;
      default:
        $rest = 'statuses/user_timeline';
        $params = array(
          'count' => '20',
        );
        break;
    }
    $auth = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_access_token, $oauth_access_token_secret);
    $get = $auth
      ->get($rest, $params);
    $output = '';
    if (!$get) {
      $output .= 'An error occurs while reading the feed, please check your connection or settings';
    }
    elseif (isset($get->errors)) {
      foreach ($get->errors as $key => $val) {
        $output .= $val;
      }
    }
    else {
      $output .= $get;
    }
    return new Response($output);
  }

  /**
   * Facebook callback for social stream.
   */
  public function jquery_social_stream_facebook_callback() {
    $config = \Drupal::config('jquery_social_stream.settings');
    $app_id = $config
      ->get('facebook_app_id');
    $app_secret = $config
      ->get('facebook_app_secret');

    // DO NOT EDIT BELOW THIS LINE
    ini_set('display_errors', '0');
    error_reporting(E_ALL | E_STRICT);
    $app_access_token = $app_id . '|' . $app_secret;
    $page_id = isset($_GET['id']) ? $_GET['id'] : '';
    $limit = isset($_GET['limit']) ? $_GET['limit'] : 20;
    $feed = isset($_GET['feed']) ? $_GET['feed'] : 'feed';
    $fields = "id,message,picture,link,name,description,type,icon,created_time,from,object_id,likes,comments";
    $graphUrl = 'https://graph.facebook.com/v2.3/' . $page_id . '/' . $feed . '?key=value&access_token=' . $app_access_token . '&fields=' . $fields;
    $pageUrl = 'https://graph.facebook.com/v2.3/' . $page_id . '?key=value&access_token=' . $app_access_token;

    // get page details
    $pageObject = file_get_contents($pageUrl);
    if ($pageObject === FALSE) {
      $pageObject = self::dc_curl_get_contents($pageUrl);
    }
    $pageDetails = json_decode($pageObject);
    $pageLink = isset($pageDetails->link) ? $pageDetails->link : '';
    $pageName = isset($pageDetails->name) ? $pageDetails->name : '';

    // get page feed
    $graphObject = file_get_contents($graphUrl);
    if ($graphObject === FALSE) {
      $graphObject = self::dc_curl_get_contents($graphUrl);
    }
    $parsedJson = json_decode($graphObject);
    $pagefeed = $parsedJson->data;
    $count = 0;
    $link_url = '';
    $json_decoded = array();
    $json_decoded['responseData']['feed']['link'] = "";
    if (is_array($pagefeed)) {
      foreach ($pagefeed as $data) {
        if (isset($data->message)) {
          $message = $data->message;
        }
        elseif (isset($data->story)) {
          $message = $data->story;
        }
        else {
          $message = '';
        }
        if (isset($data->description)) {
          $message .= ' ' . $data->description;
        }
        $link = isset($data->link) ? $data->link : '';
        $image = isset($data->picture) ? $data->picture : NULL;
        $type = isset($data->type) ? $data->type : '';
        if ($link_url == $link) {

          // continue;
        }
        $link_url = $link;
        if ($type == 'status' && isset($data->story)) {
          continue;
        }
        if (!isset($data->object_id) && $type != 'video') {
          $pic_id = explode("_", $image);
          if (isset($pic_id[1])) {
            $data->object_id = $pic_id[1];
          }
        }
        if (isset($data->object_id)) {
          if (strpos($image, 'safe_image.php') === FALSE && is_numeric($data->object_id)) {
            $image = 'http://graph.facebook.com/' . $data->object_id . '/picture?type=normal';
          }
        }
        $json_decoded['responseData']['feed']['entries'][$count]['pageLink'] = $pageLink;
        $json_decoded['responseData']['feed']['entries'][$count]['pageName'] = $pageName;
        $json_decoded['responseData']['feed']['entries'][$count]['link'] = $link;
        $json_decoded['responseData']['feed']['entries'][$count]['content'] = $message;
        $json_decoded['responseData']['feed']['entries'][$count]['thumb'] = $image;
        $json_decoded['responseData']['feed']['entries'][$count]['publishedDate'] = date("D, d M Y H:i:s O", strtotime($data->created_time));
        $count++;
      }
    }
    header("Content-Type: application/json; charset=UTF-8");
    return new Response(drupal_json_encode($json_decoded));
  }
  protected static function dc_curl_get_contents($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ControllerBase::$configFactory protected property The configuration factory.
ControllerBase::$currentUser protected property The current user service. 1
ControllerBase::$entityFormBuilder protected property The entity form builder.
ControllerBase::$entityManager protected property The entity manager.
ControllerBase::$entityTypeManager protected property The entity type manager.
ControllerBase::$formBuilder protected property The form builder. 2
ControllerBase::$keyValue protected property The key-value storage. 1
ControllerBase::$languageManager protected property The language manager. 1
ControllerBase::$moduleHandler protected property The module handler. 2
ControllerBase::$stateService protected property The state service.
ControllerBase::cache protected function Returns the requested cache bin.
ControllerBase::config protected function Retrieves a configuration object.
ControllerBase::container private function Returns the service container.
ControllerBase::create public static function Instantiates a new instance of this class. Overrides ContainerInjectionInterface::create 40
ControllerBase::currentUser protected function Returns the current user. 1
ControllerBase::entityFormBuilder protected function Retrieves the entity form builder.
ControllerBase::entityManager Deprecated protected function Retrieves the entity manager service.
ControllerBase::entityTypeManager protected function Retrieves the entity type manager.
ControllerBase::formBuilder protected function Returns the form builder service. 2
ControllerBase::keyValue protected function Returns a key/value storage collection. 1
ControllerBase::languageManager protected function Returns the language manager service. 1
ControllerBase::moduleHandler protected function Returns the module handler. 2
ControllerBase::redirect protected function Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait::redirect
ControllerBase::state protected function Returns the state storage service.
DefaultController::dc_curl_get_contents protected static function
DefaultController::jquery_social_stream_facebook_callback public function Facebook callback for social stream.
DefaultController::jquery_social_stream_twitter_callback public function Twitter callback for social stream.
LinkGeneratorTrait::$linkGenerator protected property The link generator. 1
LinkGeneratorTrait::getLinkGenerator Deprecated protected function Returns the link generator.
LinkGeneratorTrait::l Deprecated protected function Renders a link to a route given a route name and its parameters.
LinkGeneratorTrait::setLinkGenerator Deprecated public function Sets the link generator service.
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
UrlGeneratorTrait::$urlGenerator protected property The url generator.
UrlGeneratorTrait::getUrlGenerator Deprecated protected function Returns the URL generator service.
UrlGeneratorTrait::setUrlGenerator Deprecated public function Sets the URL generator service.
UrlGeneratorTrait::url Deprecated protected function Generates a URL or path for a specific route based on the given parameters.