mvo/contao-facebook-import

Contao开源CMS的Facebook帖子及活动

安装次数: 2,631

依赖者: 1

建议者: 0

安全性: 0

星标: 11

关注者: 7

分支: 5

开放问题: 11

类型:contao-bundle

v3.3.3 2022-07-18 07:27 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事件列表内容元素。