kerigansolutions / facebookfeed
0.17
2018-02-23 22:54 UTC
Requires
- guzzlehttp/guzzle: ^6.3
- nesbot/carbon: ^1.22
README
轻松将帖子的事件从您管理的Facebook页面拉入WordPress站点。
安装
composer require kerigansolutions/facebookfeed
设置
获取您的Facebook页面ID和访问令牌
-
Facebook页面ID
- 打开您的Facebook页面
- 点击“关于”
- 滚动到“更多信息”部分
- 在页面ID下,您可以找到您的页面ID
-
应用访问令牌
- 在Facebook开发者控制台中创建一个新的应用
- 使用访问令牌工具获取您的应用访问令牌
-
将您的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...
)
)
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>';
文档正在完善中,更深入的指南将很快推出。