Skip to content
This repository was archived by the owner on Dec 15, 2025. It is now read-only.

contributte/facebook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Website πŸš€ contributte.org | Contact πŸ‘¨πŸ»β€πŸ’» f3l1x.io | Twitter 🐦 @contributte

Disclaimer

⚠️ This project is no longer being maintained.
Composer contributte/facebook
Version
PHP
License

About

Easy-to-use Facebook login wrapper for Nette Framework.

Installation

composer require contributte/facebook

Setup

extensions:
	facebook: Contributte\Facebook\DI\Nette\FacebookExtension

If you are using PHP 8.0+, you need to use forked version of facebook/graph-sdk. You can rely on our fork holyfork/facebook-graph-sdk, it's tested and working.

{
  "repositories": [
    { "type": "git", "url": "https://github.com/holyfork/facebook-graph-sdk" }
  ]
}

Configuration

You need to create a FacebookApp and supply these parameters:

  • appId
  • appSecret
  • defaultGraphVersion (optional)
  • persistentDataHandler (optional) default value: session
  • httpClientHandler (optional)
facebook:
	appId: %yourAppId%
	appSecret: %yourAppSecret%

Usage

Simple example how to use Facebook Login in Presenter

namespace App\Presenters;

use Contributte\Facebook\Exceptions\FacebookLoginException;
use Contributte\Facebook\FacebookLogin;
use Nette\Application\Responses\RedirectResponse;
use Nette\Application\UI\Presenter;
use Nette\Security\AuthenticationException;

final class SignPresenter extends Presenter
{

	/** @var FacebookLogin @inject */
	public $facebookLogin;

	public function actionFacebook()
	{
		// Redirect to FB and ask customer to grant access to his account
		$url = $this->facebookLogin->getLoginUrl($this->link('//facebookAuthorize'), ['email', 'public_profile']);
		$this->sendResponse(new RedirectResponse($url));
	}

	/**
	 * Log in user with accessToken obtained after redirected from FB
	 *
	 * @return void
	 */
	public function actionFacebookAuthorize()
	{
		// Fetch User data from FB and try to login
		try {
			$token = $this->facebookLogin->getAccessToken();

			$this->user->login('facebook', $this->facebookLogin->getMe($token->getValue(), ['first_name', 'last_name', 'email', 'gender']));
			$this->flashMessage('Login successful :-).', 'success');
		} catch (FacebookLoginException | AuthenticationException $e) {
			$this->flashMessage('Login failed. :-( Try again.', 'danger');
		}
	}

}

If you need to specify your own state param (more info here mind also checking Enable Strict Mode). Facebook::getLoginUrl() takes optional third parameter $stateParam which FB passes back unchanged.

JavaScript Login

You can also use FB login button, for example:

<div
    class="fb-login-button"
    onlogin="fbAfterLogin()"
    data-width="200"
    data-max-rows="1"
    data-size="medium"
    data-button-type="continue_with"
    data-show-faces="false"
    data-auto-logout-link="false"
    data-use-continue-as="true"
    data-scope="email,public_profile"
>
Login
</div>

And use onlogin event to call backend code which takes care of registration/login process:

/**
 * Log in user with accessToken from cookie/session after javascript authorization
 */
public function actionFacebookCookie()
{
	// Fetch User data from FB and try to login
	try {
		$token = $this->facebookLogin->getAccessTokenFromCookie();

		$this->user->login('facebook', $this->facebookLogin->getMe($token, ['first_name', 'last_name', 'email', 'gender']));
		$this->flashMessage('Login successful :-).', 'success');
	} catch (FacebookLoginException | AuthenticationException $e) {
		$this->flashMessage('Login failed. :-( Try again.', 'danger');
	}
}

Versions

State Version Branch Nette PHP
dev ^0.4 master 3.0+ >=7.2
stable ^0.3 master 3.0+ ^7.2
stable ^0.2 master 2.4 >=7.1

Development

This package was maintained by these authors.


Consider to support contributte development team. Also thank you for using this package.

About

πŸ’€ [DISCONTINUED] πŸ˜‹ Tiny Facebook SDK 5.x integration to Nette Framework

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 8