Convert Figma logo to code with AI

facebookarchive logophp-graph-sdk

The Facebook SDK for PHP provides a native interface to the Graph API and Facebook Login. https://developers.facebook.com/docs/php

3,173
1,954
3,173
166

Top Related Projects

The Facebook SDK for PHP provides a native interface to the Graph API and Facebook Login. https://developers.facebook.com/docs/php

23,156

Guzzle, an extensible PHP HTTP client

Quick Overview

The Facebook PHP Graph SDK is an official library provided by Facebook to interact with the Facebook Graph API using PHP. It simplifies the process of authenticating users, making API requests, and handling responses when developing Facebook-integrated applications.

Pros

  • Official SDK maintained by Facebook, ensuring compatibility and updates
  • Simplifies OAuth 2.0 authentication process
  • Provides helper methods for common API operations
  • Supports batch requests for improved performance

Cons

  • Limited to Facebook's Graph API, not suitable for other social platforms
  • Requires understanding of Facebook's API structure and permissions
  • May have a learning curve for developers new to Facebook integration
  • Dependent on Facebook's API changes and deprecations

Code Examples

  1. Initializing the Facebook SDK:
require_once __DIR__ . '/vendor/autoload.php';

$fb = new Facebook\Facebook([
  'app_id' => '{app-id}',
  'app_secret' => '{app-secret}',
  'default_graph_version' => 'v12.0',
]);
  1. Making a Graph API request:
try {
  $response = $fb->get('/me?fields=id,name', '{access-token}');
  $user = $response->getGraphUser();
  echo 'Name: ' . $user['name'];
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
}
  1. Posting to a user's timeline:
$linkData = [
  'link' => 'http://www.example.com',
  'message' => 'User provided message',
];

try {
  $response = $fb->post('/me/feed', $linkData, '{access-token}');
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
}

$graphNode = $response->getGraphNode();

Getting Started

  1. Install the SDK using Composer:

    composer require facebook/graph-sdk
    
  2. Create a new Facebook App on the Facebook Developers site.

  3. Initialize the SDK in your PHP script:

    require_once __DIR__ . '/vendor/autoload.php';
    
    $fb = new Facebook\Facebook([
      'app_id' => '{app-id}',
      'app_secret' => '{app-secret}',
      'default_graph_version' => 'v12.0',
    ]);
    
  4. Implement user authentication and start making API requests using the examples provided in the documentation.

Competitor Comparisons

The Facebook SDK for PHP provides a native interface to the Graph API and Facebook Login. https://developers.facebook.com/docs/php

Pros of php-graph-sdk

  • Well-established and widely used SDK for Facebook Graph API
  • Comprehensive documentation and community support
  • Robust error handling and exception management

Cons of php-graph-sdk

  • Archived repository, no longer actively maintained
  • May lack support for newer Facebook API features
  • Potential security vulnerabilities due to lack of updates

Code Comparison

Both repositories contain the same codebase, as they are identical. Here's a sample of the code structure:

namespace Facebook\GraphNodes;

class GraphNode extends Collection
{
    protected $graphObjectMap = [];

    public function getField($name, $default = null)
    {
        if (isset($this->items[$name])) {
            return $this->items[$name];
        }

        return $default;
    }
}

Since both repositories are identical, there are no differences in the code structure or implementation. The main distinction is that one repository might have been created as a duplicate or fork of the other, but they contain the same content.

It's important to note that both repositories are archived, which means they are no longer actively maintained. Users should consider looking for alternative, actively maintained SDKs for integrating with the Facebook Graph API in PHP projects.

23,156

Guzzle, an extensible PHP HTTP client

Pros of Guzzle

  • More versatile and can be used for various HTTP requests, not limited to Facebook API
  • Actively maintained with regular updates and improvements
  • Extensive documentation and community support

Cons of Guzzle

  • Requires more setup and configuration for specific API interactions
  • May have a steeper learning curve for beginners compared to purpose-built SDKs

Code Comparison

php-graph-sdk:

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

$response = $fb->get('/me', '{access-token}');
$user = $response->getGraphUser();

Guzzle:

$client = new GuzzleHttp\Client(['base_uri' => 'https://graph.facebook.com/v2.10/']);
$response = $client->request('GET', 'me', [
    'query' => ['access_token' => '{access-token}']
]);
$user = json_decode($response->getBody(), true);

Summary

While php-graph-sdk is specifically designed for Facebook API interactions, Guzzle offers a more general-purpose HTTP client solution. Guzzle provides flexibility for various API integrations but may require more initial setup. php-graph-sdk offers a more straightforward approach for Facebook-specific tasks but is limited in scope. The choice between the two depends on the project requirements and the developer's familiarity with each library.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Facebook SDK for PHP (v5)

Build Status Scrutinizer Code Quality Latest Stable Version

This repository contains the open source PHP SDK that allows you to access the Facebook Platform from your PHP app.

Installation

The Facebook PHP SDK can be installed with Composer. Run this command:

composer require facebook/graph-sdk

Please be aware, that there are issues when using the Facebook SDK together with Guzzle 6.x. php-graph-sdk v5.x only works with Guzzle 5.x out of the box. However, there is a workaround to make it work with Guzzle 6.x.

Upgrading to v5.x

Upgrading from v4.x? Facebook PHP SDK v5.x introduced breaking changes. Please read the upgrade guide before upgrading.

Usage

Note: This version of the Facebook SDK for PHP requires PHP 5.4 or greater.

Simple GET example of a user's profile.

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();

Complete documentation, installation instructions, and examples are available here.

Tests

  1. Composer is a prerequisite for running the tests. Install composer globally, then run composer install to install required files.
  2. Create a test app on Facebook Developers, then create tests/FacebookTestCredentials.php from tests/FacebookTestCredentials.php.dist and edit it to add your credentials.
  3. The tests can be executed by running this command from the root directory:
$ ./vendor/bin/phpunit

By default the tests will send live HTTP requests to the Graph API. If you are without an internet connection you can skip these tests by excluding the integration group.

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

Contributing

For us to accept contributions you will have to first have signed the Contributor License Agreement. Please see CONTRIBUTING for details.

License

Please see the license file for more information.

Security Vulnerabilities

If you have found a security issue, please contact the maintainers directly at me@sammyk.me.