kerigansolutions/facebookfeed

0.17 2018-02-23 22:54 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:20:47 UTC


README

轻松将帖子的事件从您管理的Facebook页面拉入WordPress站点。

安装

composer require kerigansolutions/facebookfeed

设置

获取您的Facebook页面ID和访问令牌

  • Facebook页面ID

    • 打开您的Facebook页面
    • 点击“关于”
    • 滚动到“更多信息”部分
    • 在页面ID下,您可以找到您的页面ID
  • 应用访问令牌

  • 将您的Facebook页面ID和访问令牌添加到wp-config.php

define('FACEBOOK_PAGE_ID', 'YOUR FACEBOOK PAGE ID HERE');
define('FACEBOOK_ACCESS_TOKEN', 'YOUR FACEBOOK TOKEN HERE');

快速入门

$facebookFeed  = new KeriganSolutions\FacebookFeed\FacebookFeed();
$numberOfPosts = 5;

$results = $facebookFeed->fetch($numberOfPosts);

echo '<pre>',print_r($results),'</pre>';

分页

此包使用Facebook Graph API返回的默认基于游标的分页。让我们看看如何在我们的WordPress网站上实现这一点

执行API调用并检索结果

$facebookFeed  = new KeriganSolutions\FacebookFeed\FacebookFeed();
$numberOfPosts = 5;

$results = $facebookFeed->fetch($numberOfPosts);

我们已经介绍过这一点。到目前为止,一切顺利。让我们看看返回的数据

stdClass Object
(
    [posts] => Array
        (
            [0] => stdClass Object
                (
                    [permalink_url] => https://#/XXXXXXXX/posts/1989865411030718
                    [full_picture] => https://scontent.xx.fbcdn.net/v/t31.0-8/s720x720/24958917_1989865411030718_66...
                    [object_id] => 1989865411030718
                    [type] => photo
                    [status_type] => added_photos
                    [created_time] => 2017-12-10T22:51:24+0000
                    [link] => https://#/XXXXXX/photos/a.1989861894364403.1...
                    [attachments] => stdClass Object
                        (
                            [data] => Array
                                (
                                    [0] => stdClass Object
                                        (
                                            [target] => stdClass Object
                                                (
                                                    [url] => https://#/media/set/?set=ms.c.eJxNV1...
                                                )

                                            [media] => stdClass Object
                                                (
                                                    [image] => stdClass Object
                                                        (
                                                            [height] => 478
                                                            [src] => https://scontent.xx.fbcdn.net/v/t31.0-8/s720x72..
                                                            [width] => 720
                                                        )

                                                )

                                        )

                                )

                        )

                    [id] => 167644949919449_1989865411030718
                )

        )

    [paging] => stdClass Object
        (
            [cursors] => stdClass Object
                (
                    [before] => Q2c4U1pXNTBYM0YxWlhKNVgzTjBiM0o1WDJ....
                    [after] => Q2c4U1pXNTBYM0YxWlhKNVgzTjBiM0o1WDJs...
                )

            [next] => https://graph.facebook.com/v2.11/167644949919449/posts?access_token=3119470492897...
        )

)

请参阅Facebook Graph API文档

before : 这是指向已返回数据页面开始的游标。

after : 这是指向已返回数据页面结束的游标。

next : 将返回下一页数据的Graph API端点。如果不包含,则这是最后一页数据。由于分页与可见性和隐私的工作方式,可能一页可能为空但包含一个'next'分页链接。当'next'链接不再出现时停止分页。

previous : 将返回上一页数据的Graph API端点。如果不包含,则这是第一页数据。

这意味着什么?

现在我们知道数据从哪里开始和结束,因此我们可以通过向fetch函数传递一些新参数来获取我们的下一个五个结果。观察

$facebookFeed  = new KeriganSolutions\FacebookFeed\FacebookFeed();
$numberOfPosts = 5;
$before        = null;
$after         = 'Q2c4U1pXNTBYM0YxWlhKNVgzTjBiM0o1WDJs...';

$results = $facebookFeed->fetch($numberOfPosts, $before, $after);

echo '<pre>',print_r($results),'</pre>';

注意:游标可能会频繁且无预警地更改。不要存储游标。动态获取它们并使用GET变量或其他类似方法将它们传递给下一页

嵌入视频

为了处理从您的Facebook状态嵌入视频到WordPress页面,您需要条件性地检查post->type是否为video,设置标准iframe并将帖子的返回link值传递到src属性。该包目前处理嵌入的Facebook、Vimeo和YouTube视频。

事件

事件的处理方式与帖子类似。

$fb     = new KeriganSolutions\FacebookFeed\FacebookEvents();
$before = null;
$after  = null;
$events = $fb->fetch(10, $before, $after);

echo '<pre>',print_r($events),'</pre>';

文档正在完善中,更深入的指南将很快推出。