Install the package with Composer:
composer require mediapart/lapresselibre-bundle
Load the bundle into your Kernel:
# app/AppKernel.php
$bundles = array(
// ...
new Mediapart\Bundle\LaPresseLibreBundle\MediapartLaPresseLibreBundle(),
);
Configure your App with your LaPresseLibre partner credentials:
# app/config/config.yml
mediapart_la_presse_libre:
public_key: %lapresselibre_publickey%
secret_key: %lapresselibre_secretkey%
aes_password: %lapresselibre_aespassword%
aes_iv: %lapresselibre_aesiv%
Configure the routing:
# app/config/routing.yml
MediapartLaPresseLibreWebServices:
resource: "@MediapartLaPresseLibreBundle/Resources/config/routing/webservices.php"
#prefix: lapresselibre/
And then, indicates your endpoints uri into LaPresseLibre partner platform.
Define what your endpoints have to do. For example, Your verification endpoint will look like :
<?php
# src/Acme/LaPresseLibre/Verification.php
namespace AppBundle\LaPresseLibre;
use Mediapart\LaPresseLibre\Subscription\Type as SubscriptionType;
class Verification
{
private $public_key;
public function __construct($public_key)
{
$this->public_key = $public_key;
}
public function alwaysVerifiedAccounts(array $data, $isTesting = false)
{
$now = new \DateTime('next year');
return [
'Mail' => $data['Mail'],
'CodeUtilisateur' => $data['CodeUtilisateur'],
'TypeAbonnement' => SubscriptionType::MONTHLY,
'DateExpiration' => $now->format("Y-m-d\TH:i:sO"),
'DateSouscription' => $now->format("Y-m-d\TH:i:sO"),
'AccountExist' => true,
'PartenaireID' => $this->public_key,
];
}
}
# app/config/services.yml
services:
your_verification_service:
class: 'AppBundle\LaPresseLibre\Verification'
arguments:
- '%lapresselibre_publickey%'
tags:
- { name: 'lapresselibre', route: 'lapresselibre_verification', operation: 'Mediapart\LaPresseLibre\Operation\Verification', method: 'alwaysVerifiedAccounts' }
Configure the routing:
# app/config/routing.yml
MediapartLaPresseLibreLinkAccount:
resource: "@MediapartLaPresseLibreBundle/Resources/config/routing/link-account.php"
#prefix: lapresselibre/
Implements Mediapart/LaPresseLibre/Account/Repository
and Mediapart\Bundle\LaPresseLibreBundle\Account\AccountProvider
interfaces.
# app/config/services.yml
services:
# …
your_account_repository:
class: 'AppBundle\LaPresseLibre\AccountRepository'
your_account_provider:
class: 'AppBundle\LaPresseLibre\AccountProvider'
Update the config :
# app/config/config.yml
mediapart_lapresselibre:
# …
account:
repository: 'your_account_repository'
provider: 'your_account_provider'