Facebook Login Api Module
Sloužà pro vytvořenà odkazu pro přihlášenà pomocà Facebooku a načtenà uživatelských dat přijatých z Facebooku
Instalace
Načtenà závislosti
$ composer require peckadesign/facebook-login-api
Zaregistrovánà extension
extensions:
facebookLoginApi: Pd\FacebookLoginApi\DI\FacebookLoginApiExtension
Konfigurace
Neon
facebookLoginApi:
appId: XXX
appSecret: XXXX
fbApiResponseDestinationUid: ::sprintf('UID|%s', ::constant(\App\Page\Page::UID_FACEBOOK_LOGIN_RESPONSE)) #nebo klasické nettà `:Page:FacebookLogin:`
Implementace
Vygenerovánà odkazu v presenteru
<?php declare(strict_types = 1);
final class KdejakyPresenter extends \Nette\Application\UI\Presenter
{
/**
* @var \Pd\FacebookLoginApi\FacebookLoginRequestLinkFactory
*/
private $facebookLoginRequestFactory;
public function __construct(
\Pd\FacebookLoginApi\FacebookLoginRequestLinkFactory $facebookLoginRequestFactory
)
{
parent::__construct();
$this->facebookLoginRequestFactory = $facebookLoginRequestFactory;
}
public function renderDefault(): void
{
/*
* Parametr funkce `createRequest` pĹ™ijĂmá state parametr, kterĂ˝ je schopen Facebook vrátit.
* PouĹľĂvá se nepĹ™Ăklad pro uloĹľenĂ backlinku.
*/
$this->template->requestLink = $this->facebookLoginRequestFactory->createRequestLink($this->storeRequest());
}
}
Zpracovánà Facebook requestu
ZpracovánĂ probĂhá na stránce, která se nastavuje FacebookLoginRequestFactory
v konfigurace, napĹ™Ăklad v neonu.
<?php declare(strict_types = 1);
final class JakykolivPresenter extends \Nette\Application\UI\Presenter
{
/**
* @var \Pd\FacebookLoginApi\FacebookLoginObjectLoader
*/
private $facebookLoginObjectLoader;
/**
* @var \Pd\FacebookLoginApi\Facebook
*/
private $facebook;
public function __construct(
\Pd\FacebookLoginApi\FacebookLoginObjectLoader $facebookLoginObjectLoader,
\Pd\FacebookLoginApi\Facebook $facebook
)
{
parent::__construct();
$this->facebookLoginObjectLoader = $facebookLoginObjectLoader;
$this->facebook = $facebook;
}
public function renderDefault(): void
{
/** @var \Pd\FacebookLoginApi\FacebookLoginObject $facebookUser */
$facebookUser = $this->facebookLoginObjectLoader->load();
//zpracovánà dat načtených z Facebooku
// naÄŤtenĂ state parametru
$storedRequest = $this->facebook->getStoredRequest();
$this->restoreRequest($storedRequest);
}
}