Coder Social home page Coder Social logo

sammyk / php-graph-sdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from facebookarchive/php-graph-sdk

1.0 2.0 2.0 1.89 MB

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

License: Other

PHP 100.00%

php-graph-sdk's Introduction

Facebook SDK for PHP (v6)

NOTICE: This branch is under active development. For the stable release please use the 5.x branch.

Build Status Scrutinizer Code Quality Code Coverage Development 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 php-http/curl-client guzzlehttp/psr7

Why the extra packages? We give you the flexibility to choose what HTTP client (e.g. cURL or Guzzle) to use and what PSR-7 implementation you prefer. Read more about this at the HTTPlug documentation.

Usage

Note: This version of the Facebook SDK for PHP requires PHP 5.6 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\GraphNode\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\Exception\FacebookResponseException $e) {
  // When Graph returns an error
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(\Facebook\Exception\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 [email protected].

php-graph-sdk's People

Contributors

danielegrosso avatar dojobo avatar dylan-dpc avatar emanueleminotto avatar flod1 avatar freekmurze avatar gfosco avatar gnat42 avatar guidolodetti avatar jfreed avatar keyvanakbary avatar localheinz avatar niraj-shah avatar nyholm avatar phelipealves avatar qpautrat avatar rdohms avatar rpalladino avatar ryanml avatar sammyk avatar sarciszewski avatar singularityguy avatar teldosas avatar tlshaheen avatar tolbon avatar txptr avatar vdyalex avatar villav avatar viv001 avatar yguedidi avatar

Stargazers

 avatar

Watchers

 avatar  avatar

php-graph-sdk's Issues

isLongLived()

Hello I am come from Taiwan so may be would write down the wrong English grammar.
Please forgive for any inconveniences caused.

I found an issue about access token function isLongLived()
When I login on web with dialog to get short-lived access token
I saw my access object -> expiresIn: 87662
I don't know why I got it more than 2 hours.
But I think it still is a short-lived token.
So when I call isLongLived() it would return true
/**
* Determines whether or not this is a long-lived token.
*
* @return bool
*/
public function isLongLived()
{
if ($this->expiresAt) {
return $this->expiresAt->getTimestamp() > time() + (60 * 60 * 2);
}

    if ($this->isAppAccessToken()) {
        return true;
    }

    return false;
}

I think it have to write other conditions to check it is long-lived access token or not.

Facebook PHP SDK Laundry List

Hey @stevenmaguire, @nickescobedo! I've been getting a laundry list of things to contribute to the Facebook PHP SDK. We can get to together sometime and go over them in person if you like or we can just talk about them at the open source workshop in a few weeks. But wanted to show you guys the list so far:

Beginner

  • Make PSR-2 compliant (pending @gfosco's approval) blessing granted!
  • Propose consistent docblocks standard & fix (would require discussion in main repo)
  • Add more GraphNode subtypes
  • Add more getters and auto-casters to the existing GraphNode subtypes
  • Remove any mention of authors from docblocks a let git keep track of authorship
  • Update error message in Facebook for "The pseudo_random_string_generator must be an instance "... to include the string options.
  • Add tests for getReRequestUrl() and getReAuthenticationUrl() in FacebookRedirectLoginHelper
  • Remove isLiked() from FacebookPageTabHelper
  • Remove the $state dingle-berries from FacebookSignedRequestFromInputHelper
  • Remove FacebookSignedRequestFromInputHelper::getRawSignedRequestFromGet() since that's never been a thing. :)
  • Remove all references to \\. (Except in composer.json)
  • Remove any \ prefixes in use statements
  • Fix docblocks in tests/ of mocks to point to \Mockery\MockInterface
  • In FacebookTest, unset the env fallback vars to not throw false positive.

Intermediate

Advanced

  • Review of handling of auto-casting Graph responses to GraphNodes
  • Review of generation of page URL's based on pagination cursors
  • Add some sort of event system
  • Add logger for debugging in dev mode (could tie into event system)
    • In logger, notify dev when facebook-api-version header returns unexpected value (when Graph is force-upgraded for example)
  • Add plugin functionality (could tie into event system)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.