Skip to content

Latest commit

 

History

History
70 lines (54 loc) · 2.07 KB

PersistentDataInterface.md

File metadata and controls

70 lines (54 loc) · 2.07 KB

The persistent data handler interface for the Facebook SDK for PHP

The persistent data handler interface stores values in a persistent data store. By default the SDK for PHP uses native PHP sessions to store the persistent data. You can overwrite this behavior by coding to the Facebook\PersistentData\PersistentDataInterface.

Facebook\PersistentData\PersistentDataInterface

If you're using a web framework that handles persistent data for you, you might want to code a custom persistent data handler to ensure that your persistent storage is being handled consistently.

For example if you are using Laravel, a custom handler might look like this:

use Facebook\PersistentData\PersistentDataInterface;

class MyLaravelPersistentDataHandler implements PersistentDataInterface
{
  /**
   * @var string Prefix to use for session variables.
   */
  protected $sessionPrefix = 'FBRLH_';

  /**
   * @inheritdoc
   */
  public function get($key)
  {
    return \Session::get($this->sessionPrefix . $key);
  }

  /**
   * @inheritdoc
   */
  public function set($key, $value)
  {
    \Session::put($this->sessionPrefix . $key, $value);
  }
}

To enable your custom persistent data handler implementation in the SDK, you can set an instance of the handler to the persistent_data_handler config of the Facebook\Facebook super service.

$fb = new Facebook\Facebook([
  // . . .
  'persistent_data_handler' => new MyLaravelPersistentDataHandler(),
  // . . .
  ]);

Alternatively, if you're working with the Facebook\Helpers\FacebookRedirectLoginHelper directly, you can inject your custom handler via the constructor.

use Facebook\Helpers\FacebookRedirectLoginHelper;

$myPersistentDataHandler = new MyLaravelPersistentDataHandler();
$helper = new FacebookRedirectLoginHelper($fbApp, $myPersistentDataHandler);

Method Reference

get()

public mixed get(string $key)

Returns a value from the persistent data store or null if the value does not exist.

set()

public void set(string $key, mixed $value)

Sets a value to the persistent data store.