You are here

class DrupalClientFactory in Facebook Instant Articles 3.x

Same name and namespace in other branches
  1. 8.2 src/DrupalClientFactory.php \Drupal\fb_instant_articles\DrupalClientFactory

Factory class to create a \Drupal\fb_instant_articles\DrupalClient.

Hierarchy

Expanded class hierarchy of DrupalClientFactory

1 string reference to 'DrupalClientFactory'
fb_instant_articles.services.yml in ./fb_instant_articles.services.yml
fb_instant_articles.services.yml
1 service uses DrupalClientFactory
fb_instant_articles.drupal_client_factory in ./fb_instant_articles.services.yml
Drupal\fb_instant_articles\DrupalClientFactory

File

src/DrupalClientFactory.php, line 10

Namespace

Drupal\fb_instant_articles
View source
class DrupalClientFactory {

  /**
   * Create an instance of DrupalClient.
   *
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   Config factory service.
   *
   * @return \Drupal\fb_instant_articles\DrupalClient
   *   Instance of DrupalClient.
   *
   * @throws \Drupal\fb_instant_articles\MissingApiCredentialsException
   */
  public static function create(ConfigFactoryInterface $config_factory) {
    $config = $config_factory
      ->get('fb_instant_articles.settings');
    $app_id = $config
      ->get('app_id');
    $app_secret = $config
      ->get('app_secret');
    $access_token = $config
      ->get('access_token');
    if (empty($app_id) || empty($app_secret) || empty($access_token)) {
      throw new MissingApiCredentialsException('The Facebook Instant Articles API has not been configured yet.');
    }
    $client = DrupalClient::create($config
      ->get('app_id'), $config
      ->get('app_secret'), $config
      ->get('access_token'), $config
      ->get('page_id'), $config
      ->get('development_mode') ? TRUE : FALSE);
    return $client;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DrupalClientFactory::create public static function Create an instance of DrupalClient.