pyjcoder / php-graph-sdk

针对 PHP 8.1 修改的 Facebook SDK for PHP

5.8.1 2023-02-07 12:17 UTC

This package is auto-updated.

Last update: 2024-09-07 16:13:53 UTC


README

Build Status Scrutinizer Code Quality Latest Stable Version

PHP 8.1 兼容的 Facebook SDK v5 修改版本。

此存储库包含一个开源的 PHP SDK,允许您从您的 PHP 应用程序访问 Facebook 平台。

安装

Facebook PHP SDK 可以使用 Composer 安装。运行此命令

composer require facebook/graph-sdk

请注意,在使用 Facebook SDK 与 Guzzle 6.x 一起时存在问题。php-graph-sdk v5.x 默认情况下只能与 Guzzle 5.x 一起使用。然而,存在一种解决方案使其与 Guzzle 6.x 一起工作

升级到 v5.x

从 v4.x 升级?Facebook PHP SDK v5.x 引入了破坏性更改。在升级之前,请阅读升级指南

用法

注意:此版本的 Facebook SDK for PHP 需要 PHP 5.4 或更高版本。

用户个人资料简单 GET 示例。

require_once __DIR__ . '/vendor/autoload.php'; // change path as needed

$fb = new \Facebook\Facebook([
  'app_id' => '{app-id}',
  'app_secret' => '{app-secret}',
  'default_graph_version' => 'v2.10',
  //'default_access_token' => '{access-token}', // optional
]);

// Use one of the helper classes to get a Facebook\Authentication\AccessToken entity.
//   $helper = $fb->getRedirectLoginHelper();
//   $helper = $fb->getJavaScriptHelper();
//   $helper = $fb->getCanvasHelper();
//   $helper = $fb->getPageTabHelper();

try {
  // Get the \Facebook\GraphNodes\GraphUser object for the current user.
  // If you provided a 'default_access_token', the '{access-token}' is optional.
  $response = $fb->get('/me', '{access-token}');
} catch(\Facebook\Exceptions\FacebookResponseException $e) {
  // When Graph returns an error
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(\Facebook\Exceptions\FacebookSDKException $e) {
  // When validation fails or other local issues
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

$me = $response->getGraphUser();
echo 'Logged in as ' . $me->getName();

完整的文档、安装说明和示例可在此处找到。

测试

  1. Composer 是运行测试的前提条件。全局安装 composer,然后运行 composer install 以安装所需的文件。
  2. Facebook Developers 上创建一个测试应用程序,然后从 tests/FacebookTestCredentials.php.dist 创建 tests/FacebookTestCredentials.php 并编辑它以添加您的凭据。
  3. 可以从根目录运行此命令来执行测试
$ ./vendor/bin/phpunit

默认情况下,测试会向 Graph API 发送实时 HTTP 请求。如果您没有互联网连接,可以排除 integration 组来跳过这些测试。

$ ./vendor/bin/phpunit --exclude-group integration

贡献

为了使我们能够接受贡献,您必须首先签署贡献者许可协议。有关详细信息,请参阅CONTRIBUTING

许可

有关更多信息,请参阅许可文件

安全漏洞

如果您发现了一个安全问题,请直接联系维护者me@sammyk.me