pitpit/faceboo

此包已被放弃,不再维护。未建议替代包。

将Facebook SDK集成到Symfony2或Silex

dev-master / 2.0.x-dev 2014-01-09 09:56 UTC

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
  • 粉丝页面
    • 用户是否喜欢粉丝页面?
    • 根据本地路由

Bitdeli Badge