pitpit / faceboo
此包已被放弃,不再维护。未建议替代包。
将Facebook SDK集成到Symfony2或Silex
dev-master / 2.0.x-dev
2014-01-09 09:56 UTC
Requires
- php: >=5.3.0
- facebook/php-sdk: 3.2.*
This package is auto-updated.
Last update: 2023-03-16 09:22:46 UTC
README
将Facebook SDK集成到Silex微框架(FacebookServiceProvider)或Symfony2(FacebooBundle)。
提供多种方法执行与Facebook相关的常见任务。
- 身份验证
- 权限管理
- 粉丝门管理
安装
使用Composer将faceboo添加到依赖项
php composer.phar require "pitpit/faceboo":"2.0.*@dev"
要使用Silex <= 1.0的Faceboo,请使用
php composer.phar require "pitpit/faceboo":"1.0.*@dev"
参数
- app_id: App ID
- secret: App Secret
- permissions: 需要用于应用的Facebook OAuth权限数组
- namespace: App命名空间
- canvas: 如果应用通过Facebook iframe调用,则为true
- proxy: 使Facebook请求在非透明代理后工作
- timeout: ...
- connect_timeout: ...
- protect: true|false,在canvas模式下禁用访问服务器时的重定向
用法
Silex
在index.php顶部注册命名空间和扩展
$app->register(new Faceboo\Provider\FacebooServiceProvider(), array(
'faceboo.app_id' => 'xxx',
'faceboo.secret' => 'xxx'
));
见上文,获取可用参数的完整列表。
登录并请求用户Facebook OAuth权限
$app['faceboo.permissions'] = array();
$app->match('/', function () use ($app) {
if ($response = $app['faceboo']->auth()) return $response;
//...
});
在canvas模式下,保护您的canvas应用免受直接访问源服务器的侵害
$app->before(function(Request $request) use ($app) {
if ($response = $app['faceboo']->protect()) return $response;
});
* do not rely on it, it's based on HTTP_REFERER so it's not really secured
在粉丝页面上,当前用户是否是粉丝页面的管理员
$app->match('/', function () use ($app) {
$isAdmin = $app['faceboo']->isFanPageAdmin();
//...
}
* you need to define "secret" parameter
在粉丝页面上,粉丝页面的ID是什么
$app->match('/', function () use ($app) {
$pageId = $app['faceboo']->getFanPageId();
//...
}
* you need to define "secret" parameter
在粉丝页面上,当前用户是否喜欢粉丝页面
$app->match('/', function () use ($app) {
$isFan = $app['faceboo']->isFan();
//...
}
* you need to define "secret" parameter
获取当前Facebook用户ID
$app['faceboo']->getUser();
调用Facebook API
$data = $app['faceboo']->api('/me);
Symfony2
在app/AppKernel.php中注册捆绑包
$bundles = array(
//...
new Faceboo\FacebooBundle\FacebooFacebooBundle(),
);
在app/config/config.yml中添加以下内容
faceboo:
app_id: 297720976910223
secret: b151a27351e91dab2ee18986d8c47052
见上文,获取可用参数的完整列表。
登录并根据需要请求用户权限
public function indexAction()
{
if ($response = $this->get('faceboo')->auth()) return $response;
//...
}
待办事项
- 开发网站模式下权限授权
- 移除SilexEvent依赖,以便与Symfony一起使用
- 在canvas模式下,覆盖UrlGenerator,以便在调用generate()时以$absolute = true生成canvas URL
- 粉丝页面
- 用户是否喜欢粉丝页面?
- 根据本地路由