pd / facebook-login-api
Facebook Login API
Installs: 108 220
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 12
Forks: 0
Open Issues: 0
Requires
- php: ^7.4 | ^8.0
- nette/application: ^3.0
- nette/di: ^3.0
- nette/http: ^3.0
- nickdnk/graph-sdk: ^6.0
Requires (Dev)
- pd/coding-standard: ^1.27
- phpstan/phpstan: ^1.4.6
This package is auto-updated.
Last update: 2024-04-09 12:55:29 UTC
README
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); } }