becklyn/facebook-bundle

此包已被 废弃 且不再维护。没有建议替代包。

此包为与 Facebook 使用的基组件提供支持

安装: 142

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 2

公开问题: 0

类型:symfony-bundle

v1.0.0 2017-11-23 14:19 UTC

This package is auto-updated.

Last update: 2020-02-06 19:11:00 UTC


README

此包为与 Facebook 使用的基组件提供支持。

Facebook 应用模型

一个处理许多应用(真实应用或页面标签应用)相关逻辑的模型。

定义

Facebook\Facebook:
    arguments: 
        - app_id: '123456'
          app_secret: 'thisisyoursecret'

Becklyn\FacebookBundle\Model\FacebookAppModel:
    arguments:
        - '@Facebook\Facebook'
        - '@session'
        - '@router'
        - "https://#/Symfony2Framework"          # the fan page url
        - ["email", "user_birthday", "publish_stream"]          # your required permissions
        - "session_identifier"                                  # if you need to use multiple services, you need to define unique session identifiers

此类捆绑了与 Facebook 应用开发相关的许多功能。它自动加载用户 API 数据(来自 /me 请求)、用户请求数据(来自签名请求)和页面数据(也来自签名请求)。此外,这些值在会话中持久化,因此您可以在应用程序 iframe 内安全地导航而不会丢失所有数据。

这些数据封装在三个值对象中

  • 页面
    • 捆绑页面喜好、页面管理员和页面 ID
  • 请求用户
    • 年龄、国家/地区和地区
  • API 用户
    • 来自 /me 请求的所有内容。包括对最常用数据的直接获取器(从基本权限 + email + user_birthday

所有值对象都包含 Facebook 提供的完整数据。您可以使用直接获取器或使用 getByKey 获取没有直接获取器的值的数据(例如,如果您使用更多权限)。

此外,App 模型还提供以下功能

  • 直接访问标志,用户是否喜欢页面并提供了权限
  • 获取器,用于判断用户是否在 Facebook 中查看应用,但不在您的页面内(例如,如果用户将页面视为真实应用而不是页面标签,则不会在页面更改之间持久化)
  • 页面标签 URL 生成器(包括在 app_data 中嵌入数据)
  • app_data 访问
  • 墙帖子包装器

Twig 扩展

Facebook 工具 Twig 扩展

定义

此扩展自动注册。

使用方法

提供以下 Twig 函数

  • {{ fb_likeButton(url, dataAttributes = {}) }} 生成 Facebook 按钮的 HTML。您可以在第二个参数中设置所有数据属性(省略 data,则提供 {href: "..."} 以替换 data-href="..."
  • {{ fb_profileImage(facebookId) }} 生成给定 Facebook ID 的个人资料图片的 URL。
  • {{ fb_profileUrl(facebookId) }} 生成给定 Facebook ID 的个人资料页面的 URL。
  • {{ fb_truncateLikeDescriptionText(text, length = 80) }} 截断给定的文本并从中删除所有 HTML 标签。第二个参数定义文本的截断位置(如果文本被截断,则附加 "...")。截断会破坏单词。

Facebook 应用 Twig 扩展

提供与 FacebookAppModel 相关的 twig 函数。

定义

twig.extension.facebook_app:
    class: Becklyn\FacebookBundle\Service\FacebookAppTwigExtension
    tags:
        - { name: twig.extension }
    arguments: [@facebook_app_model]    # definition from above

使用

提供以下 Twig 函数

  • {{ fb_permissionsData(redirectRoute, redirectRouteParameters = {}) }} 返回一个包含两个键的数组:{"hasPermissions": false, "permissionsUrl": "..."}。可以将其json编码后用于在您的应用中实现权限切换。需要提供重定向路由(带参数),这是在生成Facebook登录URL时使用的重定向URI所需的。
  • {{ fb_appId() }} 返回在模型中定义的应用ID。

附加信息

如果您使用多个Facebook应用模型,可以自动为这些Twig函数添加前缀。会话标识符用于添加前缀。

facebook_app_model_shop:
    class: Becklyn\FacebookBundle\Model\FacebookAppModel
    arguments:
        # ...
        - "shop"        # the session identifier

twig.extension.facebook_app_shop:
    class: Becklyn\FacebookBundle\Service\FacebookAppTwigExtension
    tags:
        - { name: twig.extension }
    arguments: [@facebook_app_model_shop, true]    # The true marks that the functions should be prefixed

现在将调用这些Twig函数。

{{ fb_shop_permissionsData(redirectRoute, redirectRouteParameters = {}) }}
{{ fb_shop_appId() }}

CSS & SCSS

只包含一个scss文件,该文件设置了ID为#fb-wrap的元素的宽度和溢出,以自动适应应用iframe。您可以将它导入到自己的SCSS文件中。