xmhafiz / fb-page-feed
一个用于获取任何Facebook页面帖子的简单包装类
1.2
2021-10-11 08:13 UTC
Requires
- php: >=7.0
- ext-json: *
- guzzlehttp/guzzle: ^7.3
Requires (Dev)
- phpunit/phpunit: ^9.0
- vlucas/phpdotenv: ~2.2
This package is auto-updated.
Last update: 2024-09-19 23:02:40 UTC
README
这是一个用PHP编写的简单包装类,用于从特定的Facebook页面获取帖子。
目前我正在使用 Facebook 图形API,以及酷炫的 guzzle 和 dotenv
已在PHP 7.0、7.1、7.4、8.0上测试
要求
- PHP 7.0+
安装
步骤 1: 获取Facebook应用
- 访问 Facebook开发者 网站
- 点击“添加新应用”并填写详细信息
- 在您的 仪表板 中,获取“应用ID”和“应用密钥”
- 是的,您已经准备好编写代码了
步骤 2: 使用composer安装
composer require xmhafiz/fb-page-feed
或者,您也可以在项目现有的composer.json文件中将它指定为一个依赖项
{
"require": {
"xmhafiz/fb-page-feed": "^1.2"
}
}
用法
安装后,您需要要求Composer的自动加载器并添加您的代码。
$data = fb_feed()->setAppId($fbAppId) ->setSecretKey($fbSecretKey) ->setPage($fbPageName) ->fetch(); $data = fb_feed()->fetch(); // must have .env $config = [ 'secret_key' => '', 'app_id' => '', 'page_name' => '', 'access_token' => '', ]; $data = fb_feed($config)->fetch(); $data = FbFeed::make($config)->fetch();
默认(最多100条帖子)
$data = fb_feed()->setAppId($fbAppId) ->setSecretKey($fbSecretKey) ->setPage($fbPageName) ->fetch();
设置模块
$data = fb_feed()->setAppId($fbAppId) ->setSecretKey($fbSecretKey) ->setPage($fbPageName) ->setModule("feeds") ->fetch();
自定义显示的最大帖子数
// only show 5 post maximum $data = fb_feed()->setAppId($fbAppId) ->setSecretKey($fbSecretKey) ->setPage($fbPageName) ->feedLimit(5) ->fetch();
按关键词过滤
// only show 5 post maximum $data = fb_feed()->setAppId($fbAppId) ->setSecretKey($fbSecretKey) ->setPage($fbPageName) ->findKeyword("#LaravelCommunity") ->fetch();
更改请求字段
// only show 5 post maximum $data = fb_feed()->setAppId($fbAppId) ->setSecretKey($fbSecretKey) ->setPage($fbPageName) ->fields("id,message") //default 'id,message,created_time' ->fields(["id","message"]) // can be array ->fetch();
使用userAccessToken获取所有者的fb页面帖子
获取userAccessToken
的详细信息请参阅此处。
$data = fb_feed() ->setAccessToken($userAccessToken) ->setPage($fbPageName) ->fetch();
代码示例
根据步骤 1 中的“应用ID”和“应用密钥”更改 $fbSecretKey
和 $fbAppId
<?php require_once 'vendor/autoload.php'; $fbSecretKey='580c7...'; $fbAppId='237...'; $fbPageName='LaravelCommunity'; $response = fb_feed()->setAppId($fbAppId)->setSecretKey($fbSecretKey)->setPage($fbPageName)->findKeyword("#tutorial")->fetch(); //or $response = fb_feed()->setCredential($fbAppId, $fbSecretKey)->setPage($fbPageName)->findKeyword("#tutorial")->fetch(); header('Content-type: application/json'); echo json_encode($data);
使用ENV
FB_SECRET_KEY=absbo123o233213
FB_APP_ID=123123123123
FB_PAGENAME=pagename
然后,只需
$response = fb_feed()->findKeyword("#AirSelangor")->fetch();
方法
结果
您应该得到如下类似的数据
{ "error": false, "status_code": 200, "data": [ { "id": "365155643537871_1321961834523909", "message": "The APPDATA or COMPOSER_HOME environment variable must be set for composer to run correctly\"\nwhat bug?", "created_time": "2017-05-14T15:45:30+0000", "from": { "name": "Phạm Nam", "id": "424522607913714" }, "permalink_url": "https://#/LaravelCommunity/posts/1321961834523909" }, { "id": "365155643537871_1766722286972894", "message": "https://www.youtube.com/channel/UCQ6fynaWa81JqPzOBMmBTSw\nLaravel BAsic To Advance LEarning Step by STep", "created_time": "2017-05-13T07:18:53+0000", "from": { "name": "Wasiim Khan", "id": "1766622610316195" }, "permalink_url": "https://#/photo.php?fbid=1766722286972894&set=o.365155643537871&type=3", "full_picture": "https://scontent.xx.fbcdn.net/v/t1.0-9/18403359_1766722286972894_2242179936023685636_n.jpg?oh=679c3e230ef55759ebe0e42239318e27&oe=597B1F7D" }, { "id": "365155643537871_1320698884650204", "message": "ai cho em hou noi nay bi sao vay.\nIntegrity constraint violation: 1048 Column 'order' cannot be null", "created_time": "2017-05-13T05:05:27+0000", "from": { "name": "Trong Phạm Sr.", "id": "891899864284241" }, "permalink_url": "https://#/LaravelCommunity/posts/1320698884650204" } ] }
注意
要使用'页面公开内容访问',您的使用必须经Facebook审查和批准。要提交此'页面公开内容访问'功能以供审查,请阅读我们关于可审查功能的文档:https://developers.facebook.com/docs/apps/review。
与 dotenv 一起使用
- 查看 示例代码
- 将
env.example
文件复制到.env
,并确保填写所有必需的环境变量(FB_SECRET_KEY
、FB_APP_ID
、FB_PAGENAME
)
许可
在MIT许可下许可