xmhafiz/fb-page-feed

一个用于获取任何Facebook页面帖子的简单包装类

安装次数: 121,044

依赖项: 0

建议者: 0

安全性: 0

星标: 66

关注者: 4

分支: 14

公开问题: 2

类型:项目

1.2 2021-10-11 08:13 UTC

README

Build Status Coverage Packagist

这是一个用PHP编写的简单包装类,用于从特定的Facebook页面获取帖子。

目前我正在使用 Facebook 图形API,以及酷炫的 guzzledotenv

已在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_KEYFB_APP_IDFB_PAGENAME

许可

MIT许可下许可