pingpong/facebook

为 Laravel 框架提供的 Facebook OAuth v4

2.0.1 2015-04-30 04:20 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:11:18 UTC


README

Build Status

服务器要求

此包需要 PHP 5.4 或更高版本。

安装

对于 Laravel 4,请使用版本 1.*

打开您的 composer.json 文件,并添加新的所需包。

   "pingpong/facebook": "~2.0"

然后,打开终端并运行。

composer update

然后,在 app/config/app.php 中添加新的服务提供者。

  'Pingpong\Facebook\FacebookServiceProvider',

然后,在 app/config/app.php 中添加新的别名。

   'Facebook' => 'Pingpong\Facebook\Facades\Facebook',

然后,发布配置。

php artisan vendor:publish --provider="Pingpong\Facebook\FacebookServiceProvider"

完成。

用法

首先,您必须在配置文件中设置 app_id 和 app_secret。您还可以设置默认作用域和重定向 URL。

return array(
	'app_id'		=>	'',
	'app_secret'	=>	'',
	'redirect_url'	=>	url('facebook/callback'),
	'scope'			=>  array(
		'publish_actions',
		'email'
	)
);

获取 Facebook 登录 URL。

Facebook::getLoginUrl();

您还可以更新作用域。

$scope = array('email');

Facebook::getLoginUrl($scope);

验证用户并获取权限。这将自动将用户重定向到 Facebook 登录 URL。

Facebook::authenticate();

如果您想更新/覆盖作用域,可以在第一个参数中添加作用域。

$scope = array('email');

Facebook::authenticate($scope);

您还可以设置想要使用的 Facebook API 版本。

$version = 'the-version';
$scope = array('email');

Facebook::authenticate($scope, $version);

默认情况下,当您使用 OAuth 登录 Facebook 时,它将显示网站版本的登录页面。如果您想使用 popup 版本,请调用 displayAsPopup 方法。

Facebook::displayAsPopup();

return Facebook::authenticate($scope, $version);

获取当前登录用户的用户资料。

Facebook::getProfile();

获取重定向回调。如果身份验证成功,则返回值为 true,否则返回 false。

Facebook::getCallback();

注销当前活动的用户。

Facebook::destroy();
// or
Facebook::logout();

调用 Facebook API。

Facebook::api($method, $path, $parameters, $version);

Facebook::api('GET', '/me');

Facebook::api('POST', '/me/feed', $parameters);

Facebook::api('PUT', '/path', $parameters);

Facebook::api('PATCH', '/path', $parameters);

Facebook::api('DELETE', '/path/to', $parameters);

调用 Facebook API 的辅助方法。

GET 请求

Facebook::get('/path', $parameters);

POST 请求

Facebook::post('/path', $parameters);

PUT 请求

Facebook::put('/path', $parameters);

PATCH 请求

Facebook::patch('/me', $parameters);

DELETE 请求

Facebook::delete('/me', $parameters);

示例

身份验证和授权

Route::group(['prefix' => 'facebook'], function ()
{
	Route::get('connect', function ()
	{
		return Facebook::authenticate();
	});

	Route::get('callback', function ()
	{
		$callback = Facebook::getCallback();

		if($callback)
		{
			$profile = Facebook::getProfile();
			
			dd($profile);
		}

		dd($callback);
	});
});

许可证

此包是开源软件,根据 BSD 3-Clause 许可证 许可。