becklyn / facebook-bundle
此包已被 废弃 且不再维护。没有建议替代包。
此包为与 Facebook 使用的基组件提供支持
v1.0.0
2017-11-23 14:19 UTC
Requires
- facebook/graph-sdk: ^5.4
- guzzlehttp/guzzle: ^5.0
- symfony/config: ^3.3
- symfony/dependency-injection: ^3.3
- symfony/http-foundation: ^3.3
- symfony/http-kernel: ^3.3
- symfony/routing: ^3.3
- twig/extensions: ^1.4
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文件中。