mvo / contao-facebook-import
Contao开源CMS的Facebook帖子及活动
Requires
- php: >=7.1
- ext-json: *
- ext-pdo: *
- codefog/contao-haste: ^4.17
- contao/core-bundle: ^4.9
- doctrine/dbal: ^2.10 || ^3.0
- doctrine/doctrine-bundle: ^1.8 || ^2.0
- doctrine/orm: ^2.6
- facebook/graph-sdk: ^5.7
- guzzlehttp/guzzle: ~6.0
- symfony/config: ^4.4 || ^5.2
- symfony/dependency-injection: ^4.4 || ^5.2
- symfony/finder: ^4.4 || ^5.2
- symfony/framework-bundle: ^4.4 || ^5.2
- symfony/http-foundation: ^4.4 || ^5.2
- symfony/http-kernel: ^4.4 || ^5.2
- symfony/routing: ^4.4 || ^5.2
- symfony/stopwatch: ^4.4 || ^5.2
Requires (Dev)
- contao/manager-plugin: ^2.0
- friendsofphp/php-cs-fixer: ^2.15
- nickdnk/graph-sdk: ^6.0
- phpstan/extension-installer: ^1.0.1
- phpstan/phpstan: ^0.12
- phpstan/phpstan-doctrine: ^0.12
- phpstan/phpstan-symfony: ^0.12
This package is auto-updated.
Last update: 2024-09-18 12:46:34 UTC
README
此包允许您将Facebook的事件和帖子作为Contao开源CMS的本地元素使用。以下功能可用:
- 自动和按需导入Facebook事件和帖子
- 自动下载帖子及事件的高分辨率图片*)到Contao文件系统
- 显示事件和帖子的内容元素
- 支持同时使用多个Facebook页面
*) 注意,使用的最大图片大小将小于或等于Contao设置中的最大大小。(系统将尝试下载符合此约束的最大可能文件。)
版本 3
这是包的版本3 - 要查看更改列表和有关如何从旧版本迁移的信息,请参阅变更日志。
PHP 8
遗憾的是,没有官方发布支持PHP 8的facebook/graph-sdk。但是,您可以在应用程序中要求第三方分支nickdnk/graph-sdk,它添加了对PHP 8的支持,并可以作为直接替代品。您可能希望在安装此包之前这样做,以避免安装失败。
$ composer require nickdnk/graph-sdk
设置
步骤 1:下载(&注册)包
将包作为依赖项要求,并在您的AppKernel
中注册MvoContaoFacebookImportBundle
(在Contao管理版中自动完成)
$ composer require mvo/contao-facebook-import
更新您的数据库。
步骤 2:配置(可选)
您可以通过在config.yml
中设置以下参数来编辑配置 - 以下值是默认值
mvo_contao_facebook_import: request_limit_per_node: 150 request_window_per_node: 3600 max_execution_time: 16 trigger_type: 'internal'
-
request_limit_per_node 定义在特定时间(请求窗口)内将发出的最大请求数量,以防止超出API限制 - 此限制为每个定义的Facebook节点单独计算。
-
request_window_per_node 定义请求窗口的长度(秒)。评估基于滚动窗口。
-
max_execution_time 定义同步过程允许运行的最大执行时间(秒)。将此值设置为更大的值(服务器仍然能够完成)将提供更快的图像同步。
-
trigger_type 定义同步应该如何触发。默认情况下(
internal
)使用Contao cron系统,但您可以将它设置为route
。然后可以通过调用/_sync_fb_nodes
路由来启动该过程。如果您想限制特定节点的同步,您可以传递节点ID作为可选的get参数。触发同步节点5的示例
wget https://mydomain.org/_sync_fb_nodes?node=5
强烈建议使用独立的cron作业并使用路由。如果您使用内部变体,请确保已禁用周期性命令调度程序,并且您仍在cron作业中触发
_contao/cron
路由。否则,当同步器运行时可能会出现长时间的延迟。
步骤 3:使用包
Facebook GraphAPI
在后台创建一个或多个Facebook节点。为了使您的应用程序能够连接到Facebook的GraphAPI,您需要创建至少一个Facebook应用和访问令牌。
您可以通过以下步骤生成后者
- 打开Graph API Explorer
- 从
应用
下拉列表中选择您的应用。 - 从
获取令牌
下拉列表中选择您的页面(在页面访问令牌下)——因此您需要允许应用访问您的页面。 - 将生成的令牌粘贴到后端的Facebook节点字段中。
- 勾选“边框侧”复选框(转换令牌)并保存记录——系统将尝试生成一个不再过期的令牌,并将其替换为您输入的令牌。
要测试您的令牌并查看它是否不会过期,您可以将其输入到访问令牌调试器中,并查找过期日期。
同步
如果您启用自动同步,那么您就可以开始了。要手动导入帖子或事件,请查看已导入的内容或隐藏某些元素,转到Facebook节点的帖子/事件子视图。
图像正在从文本内容中单独在后台导入。它们的导入是分块进行的,并且优先于更新文本内容。您将看到图像在元素中一出现就被抓取。
前端
要在前端显示数据,请使用Facebook帖子列表
和Facebook事件列表
内容元素。